Move creation of services into BluetoothAdapter.

Currently local GATT services don't make sense outside the context of an
adapter. Not having a service bound to an adapter raises issues with
implementation since to form even the Identifier for a service, we need
to know which adapter it is going to be registered on. A simple solution
to this is to have the adapter create the service. This allows us to
associate a service with an adapter, and later if we ever have reason
to have local services that aren't bound to an adapter, we can always
add a ::Create method which is not adapter bound.

Local services will now register/unregister themselves by calling the
respective methods on their objects. This makes sure that a service
that was created for a certain adapter will always register with
that adapter.

This CL fleshes out how local services are created.

Note: At the moment, all implementations of Bluetooth GATT server
functionality only have support for one adapter (with examples like MacOS
where the adapter isn't even an exposed object).

[email protected], [email protected]
BUG=601935

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

Cr-Commit-Position: refs/heads/master@{#388817}
9 files changed