service/hal: Add per-client Scan interface

Added a new per-client scan function to hal::BluetoothGattInterface.
The intention here is to push most of the per-client reference counting,
scan settings and filter coalescence below the HAL. This CL does this
first inside the Bluetooth daemon's HAL wrappers in a way that
represents what the future HAL scan API might look like.

This implements a basic reference counting scheme to share the global
controller scan session among different clients.

Bug: 25744656
Change-Id: I20c5cfc291be70d72576ebee014cc13544d5a299
6 files changed