Bluetooth LE - handles/chars/descriptors/services (OS X and iOS)

In Qt we work with handles (real for Bluez, emulated for Android/iOS/OS X).
Core Bluetooth has its own (quite primitive and inconvenient) data structures
(arrays of objects, containing nested arrays).
To make things not so ugly I'm adding several
maps to be able to find a characteristic/descriptor/service using a
handle from Qt's layer.
Also modify writeCharacteristic to use this new 'addressing scheme'.

Change-Id: Ic822c9aa82a4df1e9c4cf4c673451cac8006b9ba
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Android: Implements QLEService::includedServices() and type()

Unfortunately it is not possible to say whether a service is
primary or secondary on Android. The platform doesn't expose this
information.

Change-Id: I9b0aad191308120d2d1992a5e7736b985a375e30
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Update QLEService::Type() documentation for Android specifics

Android doesn't expose the required API elements to set the
correct service type. Therefore all services are by definition
primary services too.

Change-Id: Ifae4a1baa856382d481ab377b98f05b5b9974a85
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>