Bug 1056539: Add Bluetooth Handsfree notifications (under bluetooth2/), r=btian

The notification interface consists of virtual methods that are
invoked form the Bluetooth backend on certain events. The Handsfree
manager can implement the methods to handle these events.
Bug 1056539: Implement Bluetooth Handsfree notifications (under bluetooth2/), r=btian

The patch adds notifications support to the Handsfree manager. Each
notification's method is taken from the respective callback code, with
changes to the arguments' data types.
Bug 1056539: Use Bluetooth Handsfree notifications (under bluetooth2/), r=btian

This patch replaces Handsfree callbacks by notifications. One
important change is that the first call to |BluetoothHandsfreeManager::Get|
now happens during initialization. Hence the Handsfree manager is now setup
immediately, instead of later at use.
Bug 1056539: Integrate runnables into Handsfree notifications (under bluetooth2/), r=btian

A number of notifications dispatch runnables to the main thread for
invoking actions. This is not requireed, as notifications already
run on the main thread. This patch merges the runnable's code into
the respective notifications.
Bug 1056539: Cleanup Bluetooth Handsfree manager (under bluetooth2/), r=btian

This patch removes the unusued callback code from Bluetooth's
Handsfree manager.
Bug 1056539: Replace |MainThreadTask| by |CloseScoRunnable| (under bluetooth2/), r=btian

|MainThreadTask| performs different operations on the main thread,
depending on a given command flag. There is only one command, CLOSE_SCO,
in use.

This patch removes the command infrastructure and replaces |MainThreadTask|
by |CloseScoRunnable|, which implements only this single operation.