Bug 1053804: Add Bluetooth Handsfree notifications, r=shuang

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 1053804: Implement Bluetooth Handsfree notifications, r=shuang

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 1053804: Use Bluetooth Handsfree notifications, r=shuang

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 1053804: Integrate runnables into Handsfree notifications, r=shuang

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 1053804: Cleanup Bluetooth Handsfree manager, r=shuang

This patch removes the unusued callback code from Bluetooth's
Handsfree manager.
Bug 1053804: Replace |MainThreadTask| by |CloseScoRunnable|, r=shuang

|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.