New tabCapture.captureOffscreenTab API, initially for Presentation API 1UA mode

This is the second in a 2-part change to support the one user agent
(1UA) mode for the new W3C Presentation API.  This part adds a new
chrome.tabCapture.captureOffscreenTab API that spawns off-screen tabs
and captures their content into MediaStreams for transport to a remote
display.

This change includes some refactoring of code common to this new API and
the existing tabCapture.capture API.  In addition, the concept of
"anonymous" tab capture requests has been added to TabCaptureRegistry,
to explicitly make the off-screen tabs invisible to other extensions APIs
(this is by design).

At this time, the new API is only available on the Canary and Dev
channels, and to certain whitelisted extensions.

BUG=490890,537732

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

Cr-Commit-Position: refs/heads/master@{#352144}
diff --git a/extensions/browser/extension_function_histogram_value.h b/extensions/browser/extension_function_histogram_value.h
index 3c918e2..afaec45 100644
--- a/extensions/browser/extension_function_histogram_value.h
+++ b/extensions/browser/extension_function_histogram_value.h
@@ -1151,6 +1151,7 @@
   EASYUNLOCKPRIVATE_SETUPCONNECTIONSEND,
   DATAREDUCTIONPROXY_GETDATAUSAGE,
   EASYUNLOCKPRIVATE_SETUPCONNECTIONGETDEVICEADDRESS,
+  TABCAPTURE_CAPTUREOFFSCREENTAB,
   // Last entry: Add new entries above, then run:
   // python tools/metrics/histograms/update_extension_histograms.py
   ENUM_BOUNDARY