Dispose the cancellation token at the right time.
- Only dispose the cancellation token source when we're done with it
  (after ending the request).
- Remove safe guards for .NET 4.0 for the LongPollingTransport.
- Always dispose of the cts after disposing of the registration.
- Move TransportHeartBeat token logic to TransportDisconnectBase.
- Dispose all cancellation token related objects in Dispose.
End the connection as part of timeout.
Simplified and normalized Transport logic.
- Kill TaskAsyncHelper.Interleave.
- Added generic HttpRequestLifeTime to manage the lifetime of an http request.
- Made LongPollingTransport as similar to ForeverTransport as possible.
- Get rid of ReleaseRequest and CompleteRequest.
- Raise connect multiple times for fallback.
Fixed tests.