MediaStream API: Patch #1 of implementing navigator.getMediaDevices
The deprecated MediaStreamTrack.getSources()  will be removed later.
This patch contains almost everything except .idl files which means that this is "dead" code which will not affect anything.
Patch 2 will introduce mock support for getMediaDevices.
And finally the third patch will add tests and idl files.

BUG=338511

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

git-svn-id: svn://svn.chromium.org/blink/trunk@166370 bbb929c8-8fbe-4397-9dbb-9b2b20218538