dbusoob: Update API

Update DBus API so that it better matches inquiry result. It can now
also be used only for OOB discovery (hash and randomizer are optional).

Converting to dictionaries make it also easily extendible e.g. to add
support for BLE when proper whitepaper becomes available.
dbusoob: Simplify remove_remote_data

str2ba already checks if address is valid before converting and returns
-1 in case of failure.
dbusoob: Change ReadLocalData to match new API

ReadLocalData now returns dictionary instead of hardcoded pair of
arrays.
dbusoob: Change AddRemoteData to match new API

AddRemoteData now expect dictionary for data instead of hardcoded pair
of arrays.
dbusoob: Add support for Class in AddRemoteData

Class received in AddRemoteData is stored for future use when device
object is created.
dbusoob: Add support for Name in AddRemoteData

Name received in AddRemoteData is stored for future use when device
object is created.
dbusoob: Reply with error if SSP is not supported

Reply with org.bluez.Error.NotSupported if methods were called on
adapter without SSP enabled.
test: Update test-oob to match new D-Bus OOB API
storage: Mark write_device_name name parameter as const
dbusoob: Fix missing const specifier for oob_data->name
gatt: Add a new descriptor UUID

Add the UUID of the External Report Reference descriptor.
hog: discover External Report Reference descriptor

Non-HID service data may be encapsulated on the HID protocol and
transfered as a HID Report. This descriptor is used to map a report
on the USB-HID descriptor that transports non-HID data to the
characteristic on a external service that will actually transport the
data on GATT devices.
hog: discover the non-HID service characteristic

Find the characteristic by the UUID provided on the External Report
Reference descriptor and enable notifications for it. The characteristic
will be handled as a HID report and it's data processed through the uhid
device.
att: Add prepare write support

Add functions for encoding/decoding Prepare Write Request and
Response PDUs.
att: Add encode/decode execute write support

Add functions for encoding/decoding Execute Write Request and
Response PDUs.
gatt: Add support to GATT Write Long Characteristic

Extending the function gatt_write_char for support GATT Write Long
Characteristics. MTU is checked and if the payload does not fit,
the prepare and execute write are used to do the transaction.
attrib: Use proper types for size variables

size_t/ssize_t/off_t/etc are more appropriate for variables denoting
some kind of size than simply using int.

This patch includes a couple of other related changes to avoid gcc
signedness errors resulting from it treating (for whatever reason) const
variables and integer literals as signed.
network: Check full BNEP UUID

This patch fixes an issue where only the 2 bytes containing the service
ID was checked from the BNEP UUID. Fixes behavior for BT test cases
TP/PAN/MISC/UUID/BV-01-C & TP/PAN/MISC/UUID/BV-02-C.
attrib: Fix naming and variable types of security requirements

There's a single read/write requirement value so the variables should be
named in singular form. Also, until there's e.g. an enum typedef for
them a simple int shall do.