bluetooth: Implement known_service_uuids for Peripherals.

Platforms expose methods to retrieve devices that have connected outside the
user agent and their UUIDs:

Android: BluetoothManager#getConnectedDevices[1] and getUuids()[2]
macOS: CBCentralManager:retrieveConnectedPeripheralsWithServices:[3]
Windows: DeviceInformation::FindAllAsync[4] with GattDeviceService::GetDeviceSelectorFromUuid()[5]

Allows tests to provide known_service_uuids that would cause the returned
devices from the platform functions to change.

[1] https://developer.android.com/reference/android/bluetooth/BluetoothManager.html#getConnectedDevices(int)
[2] https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#getUuids()
[3] https://developer.apple.com/reference/corebluetooth/cbcentralmanager/1518924-retrieveconnectedperipheralswith?language=objc
[4] https://docs.microsoft.com/en-us/uwp/api/windows.devices.enumeration.deviceinformation#Windows_Devices_Enumeration_DeviceInformation_FindAllAsync_System_String_
[5] https://docs.microsoft.com/en-us/uwp/api/windows.devices.bluetooth.genericattributeprofile.gattdeviceservice#Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceService_GetDeviceSelectorFromUuid_System_Guid_

BUG=719813

Review-Url: https://codereview.chromium.org/2867713008
Cr-Commit-Position: refs/heads/master@{#471197}
15 files changed