Bluetooth: GAP: Update bondstatemachine to handle pairing scenarios

This patch updates BluetoothBondStateMachine to properly handle concurrency
scenarios of pairing while pairing is ongoing with some remote device.
Without this patch it was observed that DUT was getting stuck in pairing
when unpairing was done for some paired devices and pairing timed out with
device for which pairing was being initiated.

Change-Id: I07d2bc323aebbeada9c930eb36c9855da59dd677
CRs-Fixed: 586935
Bluetooth: OPP: Add support for sending a file multiple times

This patch adds support for sending same file for which transfer is ongoing
to be added again in batch to be transferred to some other device.

CRs-fixed: 588046
Change-Id: Id6efe66974e5e348f92625f614a144dc7048e244
Bluetooth-OPP: Truncating receiving filename

Truncating receiving filename if name exceeds MAX_LENGTH. Otherwise,
files having non-ascii characters as filename are failed to receive.

CRs-Fixed: 576621
Change-Id: Ie2a60cf6bfe6bb5bfa8ab69a7b85b3cd8bd08479
Merge "Bluetooth: GAP: Update bondstatemachine to handle pairing scenarios"
MAP: Add MAP Server Email type and instance support.

Add MSE Implementation in Bluetooth Map Profile to
support email MAS instance for EMAIL type messages.

Support MNS operations for email from single instance.

Change-Id: I89a9f63c571f3bb1cd8fc06fec39176d62e04889
Bluetooth-OPP: Cleanup OPP transfer session after Tx abort

The change will ensure that when user cancelled the tranfer while
ongoing Rx, the transfer session will be cleaned up properly.
Otherwise, while Tx + Rx concurrency if user abort the Tx and
start Tx again new tranfer session will be created only after Rx
is finished.

CRs-Fixed: 585962
Change-Id: I9b5e1c0f1748ccc47811d669ddab96ba43f424f5
Bluetooth: A2DP SINK changes for audiofocus

 - handle audio concurrencies
 - resume streaming in case of focus regain

CRs-Fixed: 584276

Change-Id: I94587313d1847aac45498d01fec992786533c001
Bluetooth: Check direction of Volume Change.

Do not send AT+VGS & AT+VGM when volume is changed
from remote device.

Change-Id: I8fdce20302314eb034137442d4c47467f409e045
CRs-Fixed: 582475
Merge "Bluetooth: A2DP SINK changes for audiofocus"
Merge "MAP: Add MAP Server Email type and instance support."
Bluetooth: MAP: Do not set body header if maxlist count is 0

As per MAP profile spec when message listing or folder
listing is done with 0 as max list count, then the response
should not contain the body header. Hence add change for the
same

Change-Id: I09b44a07bb9d15f248c0657563da4927ce4b4996
CRs-fixed: 590672
Bluetooth: MAP: Restrict Connection to only one device at a time

Do not allow two different device to connect to separate mas
instances. Restrict map connection to only one device at a time
and reject the connection request from another devices,if a
device is already connected to either of the MAS instance 0/1

CRs-fixed: 590641

Change-Id: I63a5188715e6cf66c6adda635d087810d26b4b44
PBAP: Remove body header when it is not needed

This change will remove the body header when
the user is asking for the size and not the body.

Change-Id: I8de1a9db0ac64dac3e0d0cf680814ef200fa11a0
CRs-Fixed: 554222
Bluetooth: MAP: Cleanup old subfolder list on every folder listing

Older subfolders were still persisting , even if they are deleted,
renamed at the email server in absence of cleanup at every folder
listing cycle. Hence add change to cleanup the subfolders list
whenever folder listing is requested by remote

CRs-fixed: 590708

Change-Id: I37a72370bf1e3ea0e07012c43c9e29a176a998b1
Merge "Bluetooth: OPP: Add support for sending a file multiple times"
Merge "Bluetooth-OPP: Truncating receiving filename"
Merge "Bluetooth-OPP: Cleanup OPP transfer session after Tx abort"
Merge "Bluetooth: MAP: Do not set body header if maxlist count is 0"
Merge "Bluetooth: Check direction of Volume Change."
Merge "Bluetooth: MAP: Restrict Connection to only one device at a time"