[Service Manager] Get rid of dynamic service discovery

Dynamic service discovery introduces complexity and nondeterminism in
the Service Manager, and its implementation was never quite production-
ready.

This CL removes all of that support, instead requiring a static
service catalog configuration to be provided. Support remains for
dynamic manifest discovery via ManifestProvider in order to satisfy
content layering requirements.

The interesting and interdependent high-level changes covered here:

  - No more Packages directory; service binaries live in root_out_dir
  - Catalog no longer touches disk for any metadata
  - service_manifest and catalog target settings have less redundancy
  - service_manifest and catalog outputs go in the target_gen_dir now
  - service_manifest_overlay behavior has been merged into service_manifest
  - Service Manager may be constructed with a static catalog manifest
  - BackgroundServiceManager no longer owns EDK init/shutdown
  - SM::StartEmbedderService -> SM::RegisterService, more generic API
  - The "service overrides" concept is no longer useful and thus removed
  - All SM embedders, including test suites, are now configured with
    their own static catalog manifest at runtime.

BUG=677194,672614
TEST=standalone mash_session works, chrome --mash works, mash_browser_tests, various mus and SM-related unit tests all operating normally
TBR=sky@chromium.org
TBR=xhwang@chromium.org

Review-Url: https://codereview.chromium.org/2645973006
Cr-Commit-Position: refs/heads/master@{#445678}
89 files changed