Remove the cancellationtoken hack and use the Connection.State to determine what to do next.
Implement SignalR.Client's connection state management with thread sa…
…fety in mind.
- Check to make sure we're doing valid state transitions.
- Made State get only and added ChangeSet method which makes sure
state transitions are valid.