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.