Split the BrowserPolicyConnector into platform parts.

The BrowserPolicyConnector is the class that instantiates the rest of the
policy code and wires it up to the rest of the browser (e.g. by overriding
local state prefs at the BrowserProcessImpl). It also hosts some utilities
and other central components.

That class has grown over time and contains many platform-specific parts;
it also had chrome-specific code that can't be used on iOS.

This change breaks the class into 3 pieces:

- the new BrowserPolicyConnector is the base class and lives in the component,
  so that an iOS subclass can be created in a subsequent CL. This is what
  g_browser_process holds now.

- chrome/browser/policy contains ChromeBrowserPolicyConnector which overrides it
  and provides Chrome-specific initialization.

- chrome/browser/chromeos/policy contains BrowserPolicyConnectorChromeOS which
  inherits from ChromeBrowserPolicyConnector and adds ChromeOS-specific
  components.

ChromeBrowserPolicyConnector and the future BrowserPolicyConnectorIos only add
configuration and no new methods, so the base class available from
g_browser_process covers all current uses.

BrowserPolicyConnectorChromeOS has methods that are needed on ChromeOS, and can
now be obtained via
g_browser_process->platform_parts()->browser_policy_connector_chromeos().

This CL doesn't make any functional changes; no behavior should be changed at
all.

BUG=275292
[email protected]

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246087 0039d316-1c4b-4281-b951-d872f2087c98
85 files changed