Made changes to the core storage of messages.
- Store message values as ArraySegment<byte> instead of string.
- Changed deserialize on IJsonSerializer to pass a TextReader instead of a string
- Created an ArraySegmentTextReader so data can be read from an array segment directly.
- Change the writing of PersistentResponse to write directly if the writer implements
  IBinaryWriter.
Make Encoding a public property of the message.
- Pass the Encoding explicitly when deserializing.
Write in chunks over the wire when using websockets.
- Generalize ResponseWriter for the WebSockets and IResponse
- Added SendChunk and flush to websokets.
- Enqueue send operations for websockets as well.