android: Fix btmon build
android/bluetooth: Handle 128-bit UUIDs

It's now possible to add record with 128-bit UUID Service Class which
are used for custom applications. To simplify implementation adapter
uuids list stores now full UUID in uuid_t structure instead of uint16_t
short UUID.
android/socket: Refactor socket related symbol names

This patch changes names of symbols related to various sockets to be
consistent and easier to follow in code.

Symbols related to actual BT (RFCOMM) socket are prefixed with "bt_".
Symbols related to local socket for Java comm are prefixed with "jv_".
Remote socket for Java comm is called "hal_sock".
android/socket: Improve logging

This patch makes logging more consistent by including rfsock pointer in
most messages which identifies socket structure unambigously (instead
of using bunch of file descriptors for the same purpose) and puts other
parameters in order in some cases.

Additionally, some new logs are introduced to better track socket
structures and connections lifetime.
android/socket: Simplify SDP records handling

Records are now created using helper function which creates SDP record
with common contents like service class, name and protocols. Other
attributes are then added by custom functions.
android/socket: Make servers list as static array

Since there is only small, fixed number of channels to allocate for
RFCOMM servers we can store them in static array. This will make
lookup for free channel simpler once we add support to assign channel
numbers dynamically.

At startup, channels reserved for built-in services which have static
channel number are marked as reserved so they cannot be assigned for
other service.
android/tester: Update test data

Trying to listen on already assigned channel will now return busy
status instead of just fail.
android/socket: Add support for dynamic channel numbers

This patch adds support to register server with channel number assigned
dynamically, i.e. first free number is assigned. Channels which are
reserved for built-in services are not assigned for other services.
android/socket: Register SDP record for application service

This patch adds SDP record for services registered from application
(other than built-in services).
android/socket: Include HF AG in built-in profiles

This patch adds entry for HF AG profile in built-in profiles list. This
it to reserve channel number so it's not assigned to other service
registered by application. Method for creating SDP record is not
provided so it's not possible for application to register HF AG service
by mistake (this can be only done by handsfree profile implementation).
android/socket: Update channel numbers

OPP and PBAP channel numbers are set to same values as in Bluedroid.
Both MAP and SPP use channel numbers assigned dynamically.
android/socket: Fix sockets security

Socket security shall be based on flags passed from HAL.

Android public API uses both encrypt and auth flags for "secure"
sockets which should be mapped to high security on our side, but since
this would also trigger requirement for 16-digits pin code (which is
not used in Android) we'll ignore auth flag and use either low or
medium security based on encrypt flag value only.
android/README: Update with implementation status summary

This will give a better overview of implemented features.
android/socket: Fix wrong memory access

This fixes accessing proto[2] in the code.
emulator: Update copyright and license details
android/hal-ipc-api: Add Get Play Status Response
android/hal-ipc-api: Add List Player Attributes Response
android/hal-ipc-api: Add List Player Values Response
android/hal-ipc-api: Add Get Player Attributes Response
android/hal-ipc-api: Add Get Player Attributes Text Response