Refactor LE scanning HAL (2/3)

This patch converts btgatt_scanner_interface_t struct into
BleScannerInterface class. It also refactors three most important
methods from this interface: RegisterAdvertiser, Scan, and Unregister.
Rest of this interface will be updated in following patches.

Bug: 30622771
Test: sl4a BleScanApiTest
Change-Id: Ie35356f6c3c4f5488514ef55a48a32c93fb21b83
diff --git a/service/low_energy_scanner.h b/service/low_energy_scanner.h
index f80e484..e7f6584 100644
--- a/service/low_energy_scanner.h
+++ b/service/low_energy_scanner.h
@@ -144,13 +144,13 @@
   friend class LowEnergyScanner;
 
   // BluetoothGattInterface::ScannerObserver overrides:
-  void RegisterScannerCallback(hal::BluetoothGattInterface* gatt_iface,
-                               int status, int scanner_id,
-                               const bt_uuid_t& app_uuid);
+  void RegisterScannerCallback(const RegisterCallback& callback,
+                               const UUID& app_uuid, uint8_t scanner_id,
+                               uint8_t status);
 
   // Map of pending calls to register.
   std::mutex pending_calls_lock_;
-  std::map<UUID, RegisterCallback> pending_calls_;
+  std::unordered_set<UUID> pending_calls_;
 
   // Raw pointer to the Adapter that owns this factory.
   Adapter& adapter_;