Fix broken QBluetoothServiceInfo::serviceClassUuids() call

It never returned a valid entry due to wrong QVariant conversion.
The patch changes the public header with a potential to break BC. A
formerly inline function was reimplemented and is no longer inline.
This should be safe though as older header versions can still use
the previous implementation.

Change-Id: If786a366e625a56810b8d4cc682b25d07f72f4e5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
QBluetoothServer fixes

1.) If QBluetoothServer::listen(QBluetoothUuid,QString) fails during
service registration we have to ensure that the Server doesn't remain
in listening state.

2.) 29de876f55dc96748fdca8dd3fef0c873791796f sets the socket descriptor
to -1 when closing the QBluetoothSocket. QBluetothServer treats a value
of -1 as error and aborts any call to listen(). This implies that any
call to listen() after the first close() would always fail. This patch
adds some redundancy and first tries to recreate the socket and only if
the re-creation failed exists with an error.

3.) Catch case when user calls listen() on an already listening server.
Documentation has been updated to document the behavior.

Change-Id: I2df13500e74a9741017f7404f0e0c477c96d5356
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>