arc: Revamp the ArcBridgeService interface

Adding a new host/instance pair required a lot of boilerplate. It also
made it very hard to properly do fakes for tests. This change adds two
more interfaces: InterfaceHolder<T> and InterfaceObserver<T>, so that
ArcBridgeService can stop having hundreds of methods to deal with
instance lifecycles.

BUG=626695
TEST=trybots

Review-Url: https://codereview.chromium.org/2133503002
Cr-Commit-Position: refs/heads/master@{#405025}
60 files changed