android/bluetooth: Fix handling of BREDR, LE and dual mode devices
android/bluetooth: Fix handling of BREDR, LE and dual mode devices

This includes fix for storage format so that dual mode devices are
handled correctly. Unfortunatelly this change is not backward
compatible so wiping out /data/misc/bluetooth/ is recommended.

Also correct device type is passed to bonding commands. For create_bond
we fallback to BDEDR if device is not known. This can happen eg. with
OOB. For cancel_bond and remove_bond we require device to be known.
For dual mode device currently only BREDR type is used.

Storage change details:
Instead of storing bdaddr type of device as "Type", now two variables
are used. Boolean "BREDR" if device supports BREDR. Address type is
stored in "AddressType" only if device supports LE and is either
LE random or LE public type.

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