usb: Abort writes if device is absent

Fix crash loops when a device "loses" a removable USB adapter between
boots and the service was left enabled

Change-Id: I4ab7cebb631438bf092d55da1ff7218c2b8d096b
Fixes random host disconnection after establishing connection

Host starts encryption twice when the remote device is
already paired. The host sends disconnect when the
second encryption attempt returns failure. This fix
avoids duplicate encryption attempt.

Change-Id: I8ec5c4a953180ec17585aece757810421bc44aae
Fixes pairing and unpairing issues with BLE devices

After BT off/on, already paired BLE device is showing
up as unpaired. Already unpaired BLE device is
shown as paired after BT off/on. This change fixes this
issue.

Change-Id: I2b1d8c3cbb8c69350d9853195eec9c9ceee702fd
Bluetooth: HID: Add support for Set Idle and Get Idle commands

This patch adds support for sending set idle and get idle commands to
remote HID device, on receiving the function call from upper layers.
Also on reception of get idle time from remote device, upper layers
are infrmed using registered callback.

Change-Id: I14bc2dc349354fd87ef8aba25357514398532e87
CRs-Fixed: 522511
Check if BLE is enabled before using it

Change-Id: I48a47d86200ff912cb529ad28d000142914c6c0b
Merge branch 'cm-10.2' of https://github.com/CyanogenMod/android_external_bluetooth_bluedroid into DJL10.2