Reland of Mojo C++ Bindings: Additional support for associated binding sets (patchset #1 id:1 of https://codereview.chromium.org/2324623003/ )

Reason for revert:
It seems like linker just occasionally ran out of memory on the buildbot. The CL seems to be innocent.

Original issue's description:
> Revert of Mojo C++ Bindings: Additional support for associated binding sets (patchset #2 id:20001 of https://codereview.chromium.org/2309513002/ )
>
> Reason for revert:
> This broke compilation on Win x64 builder:
>
> https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win%20x64%20Builder/builds/94511
>
> Original issue's description:
> > Mojo C++ Bindings: Additional support for associated binding sets
> >
> > Implements three orthogonal changes to the public bindings API:
> >
> >  1. Adds the ability to remove bindings from a binding set. Uses
> >     a new mojo::BindingId integer alias to identify added bindings.
> >
> >  2. Adds the ability to set a pre-dispatch hook on binding sets.
> >     In some cases simply making the dispatch_context() available
> >     is insufficient, for example when a consumer owns multiple
> >     binding sets and wants a common path for establishing context
> >     among any of them.
> >
> >  3. Adds mojo::GetDummyProxy, a helper that can bind an
> >     AssociatedInterfacePtr<T> so that it has some valid internal
> >     state and silently drops all outgoing messages. Unlike
> >     regular message pipe interfaces, without this feature
> >     associated interfaces are difficult to stub out in test
> >     environments.
> >
> > Part a series of CLs to enable and demonstrate WebContents associated
> > interfaces:
> >
> >   1. https://codereview.chromium.org/2301123004
> >   2. This CL
> >   3. https://codereview.chromium.org/2310563002
> >   4. https://codereview.chromium.org/2310583002
> >
> > BUG=612500
> > R=yzshen@chromium.org
> >
> > Committed: https://crrev.com/4b8bca190cdc55bae81974aa09cc10f422f022fb
> > Cr-Commit-Position: refs/heads/master@{#417126}
>
> TBR=yzshen@chromium.org,rockot@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=612500
>
> Committed: https://crrev.com/c08a3abcbc9d79e2a7031b116d0af9ee92d17459
> Cr-Commit-Position: refs/heads/master@{#417135}

TBR=yzshen@chromium.org,rockot@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=612500

Review-Url: https://codereview.chromium.org/2320723003
Cr-Commit-Position: refs/heads/master@{#417142}
2 files changed