Refactor: Separate the tray user from the tray user separator

BUG=306227
TEST=unittests

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233582 0039d316-1c4b-4281-b951-d872f2087c98
Device monitoring in Mac via AVFoundation.

Relanding a couple of CLs with intelligent (humand based) rebase:

- Relanding http://crrev.com/24615005/, first introduction of the
DeviceMonitorMacImpl and associate AVFoundationGlue:
-- AVFoundation glue is cleaned up following posterior comments
to bemasc@ in http://crrev.com/50133002.
-- Including http://crrev.com/43633002, silly typo causing a bug.
-- Merges bemasc@ treatment of suspended devices as not available,
only for QTKit http://crrev.com/55183002. .
-- Adapted the treatment from bemasc@ sorting out the insidious bug,
see below and http://crrev.com/51703003. In this case we add a dummy
entry in the list of devices, and mark it as |kInvalid|.

- Relanding http://crrev.com/40493003, avi@ fix for MEDIA_EXPORT.

- Relanding http://crrev.com/50213004, putting AVFoundation behind flag.
Note that we still are forcing enumeration of devices on startup, but
since it's behind a flag, no penalty is expected in the short term
and in the mid term the whole AVFoundation bringup will be moved to
getUserMedia() runtime.

A very insidious bug was uncovered by bemasc@, when, for performance
reasons we didn't enumerate devices on startup; it could be that a
Mac box would have one camera, not enumerated, and it gets disconnected,
since the init value of the |cached_devices_| is empty, the code would
see no difference and take thus take no action. bemasc@ solved it by
init'ing the device count to -1 both for video and audio.

BUG=288562

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233583 0039d316-1c4b-4281-b951-d872f2087c98
telemetry: re-enable smoothness.top_25 benchmark.

Now that Google drive has been replace by image search, smoothness.top_25
should run without errors on the perf bots.

R=tonyg@chromium.org
BUG=313753
NOTRY=True

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

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