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.
Make transports code more similar.
- Cleaned up LongPollingTransport and ForeverTransport logic so
  they're almost identical.
- Errors in Sending are handled in the bus so remove
  all catch handlers.
Remove more code from LongPollingTransport and ForeverTransport.
- Moved raising connect code into ProcessReceiveRequest method.
More cleanup to TransportDisconnectBase.
- Remove _isDisconnected flag.
- Rename OnDisconnect to Abort.
- Get rid of delegate caching.