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
I think it is best to use `[Fact(Skip="xUnit AccessViolationException https://github.com/xunit/xunit/issues/190")]` (e.g. 3c028f845e95813d1981fbf9e093a3e97669113f) to make extra sure we don't forget about this. Then this test will show up as ignored in TeamCity.

I moved this comment, because I didn't realize I made it on the commit earlier.