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>