Upstreaming AppMenu.

Upstreaming the code for handing and showing the menu in Chrome.
Start using this AppMenu for ChromiumTestShell.

BUG=309517
R=dtrainor@chromium.org, tedchoc@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237446 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 237446
Introduce new interface for MediaInternals updates.

New and shiny!
- Interface lives in media.
- Adds support for tracking AudioOutputStreams instead of just
just AudioOutputControllers.
- Adds support for tracking AudioInputControllers (which are 1:1
with AudioInputStreams currently).
- Changes the API to be threadsafe from all threads instead of
just the IO thread.
- Removes the nebulous OnSetAudioStreamStatus().
- Removes OnMediaEvents() from the public media API, will still be
callable from the content implementation.
- "Improves" the style of media-internals.
- Fixes JavaScript errors from firing WebUI code before the WebUI
finishes loading.
- Fixes style inconsistencies around table headers.
- Fixes stuck "copy to clipboard" window.

Screenshot of the new UI: http://i.imgur.com/lzQds3e.png

Still to be done:
- Actually log AudioOutputStreams and AudioInputStreams.

BUG=260005
TEST=New unittest! Interface works.

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

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