Initial changes for writing cursor directly to response via TextWriter.
- Changed ISubscriber.GetCursor to WriteCursor
- Changed PersistentResponse.WriteJson to call back a delegate to write
  the cursor.
- Removed MessageId from PersistentResponse.
Fix LongPollingTransport to enable cursor writing without allocations.
- Move receive to LongPollingTransport and out of MessageBusExtensions.
- Remove Receive overload for LP from ITransportConnection.
Write hex directly to the textWriter instead of creating a string.
Fixed issues with LongPollingTransport not sending response for timeouts/disconnects.
- Fixed cursor writing for '0'.
- Added Terminal to PersistentResponse so that teh LongPollingTransport
  can determine if it needs to end the request.
- Add some delegate caching to the LongPollingTransport.
Removed re-entrant calls and cleaned up transports.
- Only send connection state if the result is terminal
- Wait on Disconnect callback to fire before returning bus result.
- End request on terminal message in ForeverTransport.
Fix more issues with LongPollingTransport and ForeverTransport.
- Handle timeout requests correctly in ForeverTransport.
- Make sure to always handle failed sends in the LongPollingTransport.
- Handle PersistentResponse not having any messages.
Unify error handling in LongPollingTransport.