Bug 1091577: Added |BluetoothDaemonPDU::GetHeader|, r=shawnjohnjr

The |GetHeader| method of |BluetoothDaemonPDU| returns the PDU's
header. This is helpful for debugging logs.
Bug 1091577: Added general-purpose notification runnables for Bluetooth, r=shawnjohnjr

A backend notification runnable in Bluetooth is used to transfer
a notification from the I/O thread to the main thread; an interface
runnable transfers and executes a result handler. Both are currently
implemented by the Bluetooth backends.

This patch adds new runnables that are independend from any backend
code or data structures.
Bug 1091577: Use general-purpose notification runnable in Bluetooth daemon backend, r=shawnjohnjr

This patch converts all notification runnables in Bluetooth's daemon
backend to use the generic implementation. Unpack functions are replaced
by init operator classes. The init operator classes also validate the
complete unpacking of a PDU and warn about unused trailing data.
Bug 1091577: Use general-purpose result runnable in Bluetooth daemon backend, r=shawnjohnjr

This patch converts all interface runnables in Bluetooth's daemon
backend by generic result runnables. Init operator classes replace
unpack functions. Init operator classes will warn about unused data
at the end of a PDU.
Bug 1091577: Remove unused helpers from daemon backend, r=shawnjohnjr

This patch removes unused unpack functions, notification and
interface runnables from Bluetooth's daemon backend.