Support GATT services over BR/EDR.

Preview at https://rawgit.com/WebBluetoothCG/web-bluetooth/support-bredr/index.html

@armansito
Perhaps using UUIDs as the sole filter is not the best thing. An LE device will likely only advertise it's "real" primary service (e.g. a Heart Rate monitor will advertise the Heart Rate Service UUID, even if it has other primary services, such as Battery Level), so a generic battery level application may not be able to operate on a device before connection. Another common case for applications from a vendor is to use such as vendor id to identify a particular device.

So maybe there should be a separate API method to obtain all currently discovered devices that are connected and a particular service UUID has already been discovered on it. I don't know if there should be a dedicated API function for this or to simply extend the existing filter object. Maybe something like:

    dictionary BluetoothScanFilter {
        sequence<BluetoothServiceUuid> services;
        boolean? connected;
        long? vendorId;
        long? productId;
        long? deviceId;
    }

so if there is no UUID match but there is a productId match, then we include the device?