hog: Prepend Report ID to the HID report

If the report descriptor has a Report ID tag it has to be prepended
to the report data to construct the HID report itself.
hog: Add support for uHID events

This patch adds the GLib GIOChannel watcher to monitor uhid events.
hog: Handle output reports

This patch writes the output reports coming from the HID host on the
device's Output Report characteristic.
hog: Handle output events

This patch prints the output events coming from the HID host for debug
purposes.
hog: Handle feature reports

This patch writes the feature reports coming from the HID host on the
device's Feature Report characteristic.
hog: Add HID Information Characteristic read

This patch adds the characteristic value read for HID Information
Characteristic. It's information contains HID Device's HID Attributes.
hog: Use hardware country code

bCountryCode is a 8-bits integer identifying hardware target country.

The order of the characteristic declarations may be different on each
implementation. Since GATT/ATT requests need to be serialized, HID
information will be returned before report map characteristic value.
hog: Handle HID devices operating in Boot Protocol Mode

BlueZ does not support HID devices operating in Boot Protocol Mode, so we
need to set it back to Report Protocol Mode through the Protocol Mode
characteristic.

This patch takes cares of changing from Boot Protocol Mode to Report
Protocol Mode by writing the Protocol Mode characteristic value to 1,
which is value for Report Protocol Mode on HID devices operating in
Boot Protocol Mode.
hog: Fix re-discovering HoG characteristics when reconnecting

If the reports list is already present there's no need rediscovering all
the characteristics. This should also make reconnections faster.
hog: Fix destroying the uhid device when disconnecting

The uhid device should have the lifetime of the hog_device structure.
So, only destroy the uhid device when hog_device is destroyed.
Add supported features document
MCAP: Increase MTU for MCAP/HDP data channels

HDP may need to send or receive PDUs up to 64512 octets (the IEEE
11073-20601 upper limit) depending on the role, so setting MTU to
maximum possible value.
doc: Add GATT to the supported features
core: Use defines instead of magic numbers

The error-handling code should use the defines instead of magic numbers.
Remove documentation about Node API

Node API was never implemented.
AVDTP: Fix leaking remote sep capabilities

124 (32 direct, 92 indirect) bytes in 2 blocks are definitely lost in loss record 220 of 259
   at 0x4A0884D: malloc (vg_replace_malloc.c:263)
   by 0x4C7F2BE: g_malloc (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x4C936B1: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x4C949F2: g_slist_append (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x1376D6: caps_to_list (avdtp.c:1325)
   by 0x13CA2F: session_cb (avdtp.c:2881)
   by 0x4C796E4: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x4C79A17: ??? (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x4C79E11: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x11FF72: main (main.c:545)
audio: Fix possible crash while exitting

This was probably introduced by a0f543f0eb8ee35f5cfac3b86f0a88e3f01809ff
as it changes the order now media is unloaded before control causing:

Invalid read of size 8
   at 0x13D743: media_player_free (media.c:987)
   by 0x12F942: player_destroy (avrcp.c:1340)
   by 0x4C94B0C: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x4C94B2A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x1307E7: avrcp_unregister (avrcp.c:1358)
   by 0x1249CB: avrcp_server_remove (manager.c:1075)
   by 0x4C94B0C: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x179124: adapter_remove (adapter.c:2219)
   by 0x174F81: manager_cleanup (manager.c:285)
   by 0x11FFA2: main (main.c:391)
 Address 0x63dc990 is 32 bytes inside a block of size 40 free'd
   at 0x4A079AE: free (vg_replace_malloc.c:427)
   by 0x4C7F3CE: g_free (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x122442: remove_interface (object.c:564)
   by 0x122F89: g_dbus_unregister_interface (object.c:1247)
   by 0x124CC8: media_server_remove (manager.c:1112)
   by 0x4C94B0C: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.3200.3)
   by 0x179124: adapter_remove (adapter.c:2219)
   by 0x174F81: manager_cleanup (manager.c:285)
   by 0x11FFA2: main (main.c:391)
AVCTP: Make use of sendmsg to avoid copying data

This use sendmsg to send headers and operands in separated buffers
avoiding memcpy.
core: Fix using mgmt status values instead of HCI
AVCTP: Fix not zeroing out buffer

This could cause use of unitialized memory