[Extensions + Apps] Create Apps API Set

Create a place for Chrome App APIs to go, and move the chrome.browser
API there. This is the first API moved from Chrome Apps into the apps-
specific directory. This involves a number of steps:
- Create a chrome/common/apps/platform_apps/ directory, and create
  ChromeAppsAPIProvider and ChromeAppsAPIPermissions. The APIProvider
  is then registered with the singleton ExtensionsClient to provide
  information about the Chrome Apps APIs to the extension system.
- Create chrome/common/apps/platform_apps/api. This includes the API
  schema definitions (right now, just browser.idl), the features files
  (_api_features.json and _permission_features.json), and the BUILD.gn
  to generate the C++ types and JSON API strings. Types are generated
  in the apps:: namespace, instead of the extensions:: namespace. They
  are similarly generated into chrome/common/apps/platform_apps/api
  instead of chrome/common/extensions/api.
- Add a ChromeAppsBrowserAPIProvider to register the app-related
  ExtensionFunctions with the Extensions system.
- Move the browser API implementation (browser_api.*) to
  chrome/browser/apps/platform_apps/api/browser/, and consume the
  generated types.
- Register the new API location with the docserver so that it can look
  up the API schemas, and bump the docserver version.

With this, we have all the pieces necessary to continue moving App-
specific APIs en masse to the App-specific directories, and begin to
carve out the dependency from the extensions system.

Bug: 877240

Change-Id: If3eba512c24ef3d1c27ed5ff3f215f56eb13a818
Reviewed-on: https://chromium-review.googlesource.com/1187129
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589598}
35 files changed