In BluetoothProfileController, it's meaningless to separate OnConnect
and OnDisconnect since the following steps would be the same for both
cases. Therefore I introduced a function called NotifyCompletion() for
each profile manager to report the completion of connecting/disconnecting
operations.
For each profile manager, we'd like to make sure that the data member of
mController is nulled out before invoking the callback function. Because, in the
callback function, we continue to handle the next connect/disconnect request,
and we'd like to null out mController of previous request before handling the
new one.