Bug 1057337: Add Bluetooth A2DP and AVRCP notifications, r=shuang

This patch adds A2DP and AVRCP notifications and callbacks to
Gecko's Bluedroid interface. Support for AVRCP depends on the
version of the Android base system and is only available on
versions 18, 19 or later.
Bug 1057337: Implement Bluetooth A2DP notifications, r=shuang

This patch adds Bluetooth A2DP and AVRCP notifications to Gecko's
A2DP manager. The code has been taken from taken from the callback
implementations, and adapted to run on the main thread. No further
cleanups have been applied.
Bug 1057337: Use Bluetooth A2DP and AVRCP notifications, r=shuang

This patch converts Bluetooth's A2DP manager and Bluedroid interface
to use notifications instead of callbacks.
Bug 1057337: Integrate helper runnables into A2DP and AVRCP notifications, r=shuang

The helper runnables where necessary to perform certain operations on
the main thread after having received a callback from Bluedroid. The
new notification methods already run on the main thread, so the helper
runnables can be replaced by direct calls.
Bug 1057337: Cleanup BluetoothA2DPManager and related code, r=shuang

The patch removes unused callbacks and helper runnables from the
Bluedroid implementation of BluetoothA2DPManager. It also removes
the last Bluedroid-specific code from BluetoothUtils.{cpp,h}.