Reland "bluetooth: Add an alternate BluetoothDeviceClient"

This is a reland of 0a4fe769ca5f9253698d755f65d538b4190fea34

The original CL was reverted because it was causing a crash on Linux.
Before this fix, we assumed that object_manger_ would always be present.
This is not true on Linux, where the BluetoothDeviceClient is created
but not Init'ed. This reland fixes the issue by first checking if
object_manager_ is present.

https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Linux%20FYI%20Release%20%28Intel%20HD%20630%29/7477

Original change's description:
> bluetooth: Add an alternate BluetoothDeviceClient
>
> Boilerplate to add an alternate BluetoothDeviceClient that will be used
> by BluetoothSystem.
>
> Split-off from https://crrev.com/c/1359834 to make it eaiser to review.
>
> Bug: 870192
> Change-Id: I034eee1a2d6e13226438c9eba6b1a4527eea9f67
> Reviewed-on: https://chromium-review.googlesource.com/c/1360037
> Reviewed-by: Sonny Sasaka <sonnysasaka@chromium.org>
> Commit-Queue: Giovanni Ortuño Urquidi <ortuno@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#613712}

TBR=sonnysasaka@chromium.org

Bug: 870192
Change-Id: I068b04ca4e17fa1b5f724767dd8f42e560f84836
Reviewed-on: https://chromium-review.googlesource.com/c/1363733
Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Commit-Queue: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614204}
6 files changed