android/hal-audio: Fix PT in media packets

According to A2DP 1.3 spec section 4.3.3.2:
"A payload type in the RTP dynamic range shall be chosen (see [22],
section 3)." - [22] = RFC3551

As per referenced RFC3551, values in range 96-127 are reserved for
dynamic assignment so we can set PT to 96.
android/hal-audio: Fix media_packet definition

rtp_payload field in media_packet is specific for SBC codec thus it
should be moved to SBC codec implementation and removed from generic
structs.
android/hal-audio: Make RTP header optional

Not every codec on A2DP will use RTP so it's now optional - codec can
be defined to use it and core will take care of filling the data.
android/hal-audio: Make update_qos optional
android/hal-audio: Send packets only when data were encoded

Codec may not return encoded packet on every encode_mediapacket call,
i.e. in case there's not enough data it may buffer data and encode on
subsequent calls when enough data were provided. We need to make sure
media packet is written only in case somethind was encoded so we don't
send empty packets.
android/hal-audio: Allow to autoselect endpoint in open_stream IPC

audio_open_output_stream always tries to open 1st registered endpoint
based on assumption that there is only one endpoint registered anyway
(due to support for only one codec). With more endpoints available in
future we need to be able to retrieve endpoint id which is connected
and use it for streaming.

This patch adds special case for id=0 in open_stream IPC to return 1st
opened endpoint on BlueZ side which is enough for now since only one
headset can be connected at any time (i.e. we should not have more
than 1 endpoint opened).
tools/btmgmt: Add support for passkey requests
tools/btmgmt: Add support for passkey notification
shared: Add ECC library

This patch adds ECC functions. The code has been taken from
https://github.com/kmackay/easy-ecc and modified to conform with the
BlueZ coding style.
unit: Add unit test for ECC

This patch adds unit tests for the ECC code. Also this test code has
been taken from https://github.com/kmackay/easy-ecc.
monitor: Add LE SC defines for SMP
monitor: Add translations of LE SC error codes
monitor: Add decoding of LE SC PDUs
monitor: Decode LE SC bits in SMP authentication requirement
monitor: Decode LinkKey bit in SMP key distribution field
monitor: Print full type information for LTKs
smp-tester: Use BR/EDR/LE controller instead of LE-only

With secure connections we'll be able to do cross-transport key
generation as well as SMP signaling over BR/EDR, so we'll need a
dual-mode controller for this.
tools/mgmt-tester: Update LE supported settings to include SC
smp-tester: Add test case parameter for SC
smp-tester: Add another basic SC test