attrib-server: Fix invalid device access

When the device is not found, the channel attach must fail.
battery: Add generic device battery documentation

Add documentation for the generic battery D-Bus interface.
battery: Implement Generic device battery

Add implementation for the generic battery in bluetooth device.
This patch adds new D-Bus interface for adding/removing/changing
peer device battery status, allowing management of remote device
batteries.
battery: Add GATT Battery Client Service skeleton

Add support for the Battery Service Gatt Client side. Implement
the basic skeleton.
battery: Discover Characteristic Descriptors

Discover all characteristic descriptors, and build a descriptor
list. Presentation Format Descriptor and Client Characteristic
Configuration descriptors are searched.
battery: Get Battery ID

Read the battery level format characteristic descriptor to get the
unique namespace and description values.
battery: Add Battery to device

Add/Remove battery from device
battery: Read Battery level characteristic

Implement support for reading the battery level characteristic on
connection establishment.
battery: Add support for notifications

Add support for emitting PropertyChanged when a battery level
characteristic notification is sent from the peer device.
battery: Support persistent battery level

Store battery level when read, and use the level from storage
when connecting, to reduce GATT traffic.