android/gatt: Refactor client connection handling
android/gatt: Refactor client connection handling

Multiple, connection specific device lists were replaced with one,
while devices store their connection state instead. Client list in each
device were replaced with single, global list, storing (connection_id,
client*, device*) tuples. This seams to be more natural and easier to
perform actions which are mostly triggered by specific clients on
specific device or connection.

Connection id previously assigned to device now properly identifies
client<->device and not the physical adapter<->device connection.

pstglia/external-bluetooth-bluez,mapfau/bluez,pstglia/external-bluetooth-bluez,mapfau/bluez,silent-snowman/bluez,ComputeCycles/bluez,silent-snowman/bluez,pkarasev3/bluez,mapfau/bluez,pkarasev3/bluez,pstglia/external-bluetooth-bluez,ComputeCycles/bluez,pstglia/external-bluetooth-bluez,pkarasev3/bluez,silent-snowman/bluez,mapfau/bluez,ComputeCycles/bluez,pkarasev3/bluez,silent-snowman/bluez,ComputeCycles/bluez