RespectMe - respecting disconnect token in store WebSocketTransport

The store WebSocketTransport did not respect the disconnect token. Now if the disconnect cancellation token is cancelled we will not try to reconnect if the websocket gets closed and if we are already trying to reconnect we will stop doing this. Note that we don't need to register to the cancellation event since the disconnect cancellation token is cancelled only in the `Connection.Disconnect()` method which also disposes the transport which will take care of the all needed clean up.

Also fixed a race in the WebSocketTransport.Dispose method which might lead to unwanted reconnection attempts.

Workitem #3189
Dispose is closing the websocket gracefully (using the same error code we do - 1000) so I am not sure this really matters. 
Looking at this however I noticed a different issue which happens when the user tries to send a message and we happen to be reconnecting - we either throw an exception saying that `Start` has not been called or will try may try to send over a closed socket. I am looking into it.