Modified the IResponse object to only contain a GetStream member and moved the ReadAsString method to an extension

- Also Changed the ReadAsString method to return a task of string.
#1536
Modified existing classes to utilize the new IResponse object.

- Also instead of Close we now close out the response on dispose, hence the IDisposable.
#1536
Added the IResponseExtensions to the various client implementation projects

#1536
Modified the TransportFacts SendCatchesOnReceivedExceptions to mock the GetStream member of IResponse

- Now that ReadAsString is an extension method you aren't easily able to mock it therefore we have to create a stream, write a value to it and then mock the GetStream member
#1536
Added method to ChunkBuffer to take in ArraySegments
Split the EventSourceStreamReader into two classes, an AsyncStreamReader and the original EventSourceStreamReader

#1536
Added the new AsyncStreamReader to every client project

#1536
Expanded the IResponseExtensions to asynchronously read data

#1536
Fixed SendCatchesOnReceivedExceptions test to properly write to the buffer
Modified the LongPollingTransport to handle asynchronous reads appropriately

#1536
Modified the ThreadSafeInvoker to be a class instead of a struct

- Within the LongPollingTransport it was passing the ThreadSafeInvoker
around and as it was passed it was consistently copied.  Therefore
changing it to a class results in it being passed by reference.

#1536
Re-factored LongPolling transport to utilize a PollingRequestHandler.

- This new setup moves the state machine into the LongPollingTransport and the actual network polling logic into the PollingRequestHandler
Addressed FXCop issues

- Also caught a few issues that were pre-existing from rebase

#1536
Went through and removed and sorted and formatted docs for all files that I touched

#1536