Mojo: AsyncWaiter and mojo/public/environment

Summary of changes:

 o BindingsSupport is gone:
   - mojo/public/bindings/lib depends on mojo/public/environment/,
     which is also a static library.
   - mojo/public/environment provides a default implementation of
     MojoAsyncWaiter (replacing the AsyncWait functionality of
     BindingsSupport).
   - mojo/public/environment provides TLS support for storing the
     current Buffer* (replacing the Set/GetCurrentBuffer functionality
     of BindingsSupport).
   - mojo/public/environment provides the Environment class, formerly
     part of mojo/public/utility/
   - The standalone implementation of mojo/public/environment/ depends
     on mojo/public/utility/ and assumes clients will be instantiating
     RunLoops on their threads.
   - The chromium-specific implementation of mojo/public/environment/
     depends on mojo/common/ and assumes clients will be instantiating
     MessageLoops on their threads.
   - The chromium-specific implementation of mojo/public/environment/
     is divided into two targets: mojo_environment_chromium and
     mojo_environment_chromium_impl. The former is a static library and
     the latter is a component. (This way all of the state--TLS keys--
     associated with the environment is kept in a DSO when using a
     component build.)

 o RemotePtr and Connector may optionally be parameterized with a
   MojoAsyncWaiter*, allowing users to customize how AsyncWait is
   implemented for a particular usage of bindings. This is needed by
   the GL library so that it can schedule work on an application
   defined run loop.

 o RunLoop gains a RunUntilIdle method to support tests. This allows us
   to delete SimpleBindingsSupport instead of converting it over to an
   implementation of MojoAsyncWaiter.

Review URL: https://codereview.chromium.org/134253004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244739 0039d316-1c4b-4281-b951-d872f2087c98
Keeps the enough width for label and candidate fields.

BUG=332649
R=hsumita@chromium.org, komatsu@chromium.org
TEST=manually

Review URL: https://codereview.chromium.org/134613003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244740 0039d316-1c4b-4281-b951-d872f2087c98
Let WebSourceBufferImpl::setMode() update SourceState::sequence_mode_

Connects WebSourceBufferImpl::setMode() to similar ChunkDemuxer
and SourceState methods to enable setting SourceState::sequence_mode_.
Later changes will implement processing of distinct 'segments'
and 'sequence' append modes.

R=acolwell@chromium.org
TEST=On local Linux, all mediasource layout tests and media_unittests pass
BUG=249422

Review URL: https://codereview.chromium.org/134883002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244741 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 244741
Mojo: Rename PlatformChannelHandle to PlatformHandle, etc.

We're going to need handles to things other than "channels", so rename
PlatformChannelHandle to PlatformHandle.

Rename/refactor PlatformChannel to ScopedPlatformHandle (because that's
what it really was), and make it move-only.

Adapt everything else to fit this model.

R=darin@chromium.org

Review URL: https://codereview.chromium.org/137273003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244742 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 244742