android/gatt: Fix transport mask for service start

With Android 5 transport enum was changed to bit mask. With this change
we use bit masks in daemon and for Kitkat we map enum to bit mask in
hal.
android/tester: Update GATT server tests

Update transport type defines to Android 5.
android/hal-gatt: Fix build error on Android KitKat
android/README: Update documentation with Android 5 info
android/hal-ipc-api: Extend a2dp hal API with A2DP Sink role

Android 5 adds audio configuration callback for the a2dp HAL. This
callback is used only by newly introduced a2dp sink role. A2dp Sink
uses the same HAL API as Source role does. Of course there is a
sepparate HAL instance for Sink and just the interface is common with
Source role.
android/hal: Add HAL for A2DP Sink role

This role was introduced with some devices in Android 5. The same set
of IPC structs and defines is used as in Sink as it uses the same HAL
API as Source does, but just yet another instance of HAL.
android/a2dp-sink: Add skeleton for a2dp sink daemon

This adds stubs for a2dp sink role in daemon. As Sink uses the same HAL
API, daemon can use the same structs and defines as Source does.
android/hal-a2dp: Add missing a2dp handler introduced in Android 5

This is added just to be fair with the IPC mechanism and this callback
should never be called by A2DP Source. It is valid for Sink role only.
android/pts: PTS tests for ScPP on Android 5.0
shared/att: Call io_shutdown on ATT violations

The existing code handles ATT protocol request timeouts and invalid
incoming request PDUs by cleaning up the io structure via io_destroy.
This doesn't always work, since this only terminates the connection if
io_set_close_on_destroy has been set. Calling io_destroy to force a
disconnect also has the added side-effect of not invoking the disconnect
callback registered with struct io.

This patch fixes these by calling io_shutdown on the io instead when
required by ATT protocol specification. This both cleans up the
connection regardless of whether or not close_on_unref has been set, and
it triggers the disconnect callback via an EPOLLHUP event.
shared/gatt-client: Call ready_handler only in init

Currently disconnect_cb calls ready_handler to notify the upper layer
if a disconnect occurred during initialization. This patch fixes it so
that the handler is only called if in_init is set.
plugins/autopair: Provide descriptive error log

Add more description in error logging.
tools/sdptool: Add support for MAP service

Add support for MAP service in local SDP server.

The MAP MAS record captured in local SDP server:

Service Name: OBEX Message Access Server
Service RecHandle: 0x1000e
Service Class ID List:
  "Message Access - MAS" (0x1132)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 17
  "OBEX" (0x0008)
Profile Descriptor List:
  "Message Access" (0x1134)
    Version: 0x0100

Now we are able to do sdptool search/add/del/get
for MAP service.
hog: import latest uhid.h definition

Kernel 3.18 ships a new API for uhid devices. This API is retro-compatible
so we can keep the current symbols.
hog: break out the report retrieval in its own function

HoG currently only implements UHID_OUTPUT. We need to also implement
UHID_GET_REPORT and UHID_SET_REPORT. Break out the report retrieval
to use this function in the two missing implementation.
hog: implement get_report functionality

When UHID_GET_REPORT is received, hog has to update the current value
of the report and send it back to the caller.

This function should be synchronous, so the answer is sent in
get_report_cb().

(David: Track reports and cancel them on uhid timeouts. Otherwise, we'd
        incorrectly match reponses. Also fix "feature"->"get" typos and
        handle reports without IDs)
hog: implement set_report functionality

When UHID_SET_REPORT is received, hog has to send the given value
of the report to the device and send back the error code to the caller.

This function has to be synchronous, so the answer is sent in
set_report_cb().

(David: Track reports and cancel them on timeouts. Also fix some
        "get"->"set" typos.)
hog: Fix unnecessary < 0 check of unsigned value
shared/io-glib: Fix not calling destroy callback

Destroy callback should be called also for G_IO_ERR | G_IO_NVAL
condition.
src/profile: Add HSP default record for external profiles