New request dispatch mechanism
Update in response to feedback; fixes
Fix "CFNetwork internal error" messages.
Trigger dispatch on reachability updates
Get rid of accessor with side effects
Add basic metadata to response headers temporarily.

To ease the transition to using the new delegate for metadata, we'll
continue reporting version, stream id, and latency in the response
headers. This maintains parity with the old behavior. This change
should be removed once all the issues have been worked through for
the delegate and its interface locks down.
Merge pull request #68 from kgoodier/delegate-warning-fix

Fix "CFNetwork internal error" messages.
Merge pull request #69 from kgoodier/delegate-metadata-headers

Add basic metadata to response headers temporarily.
Fixed incorrect return value for _encodeHeaders:error:

Fixed _encodeHeaders:error: can return YES (success) on failure when the out error provided is nil
Merge pull request #70 from NSProgrammer/develop

Fixed incorrect return value for _encodeHeaders:error:
Fix race condition in session pool creation
Fix bug in stream iteration
GOAWAY session unit tests and bugfix.

The stream id gets reset to 0, so can't use that as the key for removing
a stream. We'll use protocol instead, since these are all local requests
and that isn't mutated by reset.
Merge pull request #71 from kgoodier/stream_bugfix

GOAWAY session unit tests and bugfix.
Buffers aren't retained when stream closes.

The current write path for sending data is optimized to minimize
data copies. A result of this is in SPDYStream _readData, for
fixed buffers (rather than streamed data), a non-copy NSData shard
is returned. This maps over a portion of the buffer SPDYStream owns.
Once SPDYStream goes away -- finishes writing, errors, etc -- that
buffer is no longer valid.

From _readData on, no copies are made, yet the data may get queued
for a while in SPDYSocket in the SPDYSocketWriteOp structure and its
associated queue. This could happen if other operations are queued in
front, or if the write buffer is particularly large on a particularly
slow network. Eventually we'll get to the CFWriteStreamWrite call and
tell it to consume data that may have been released.

This change is the smallest one possible and just makes a copy of
SPDYStream's data at _readData time. This is less efficient. I'd like
to revisit this implementation once we prove this is in fact the issue
causing write crashes and look at better buffer management. It would
require changes to the delegate interface between the stream, session,
and socket, as it is currently byte-array-based.
Avoid memcpy but still retain write buffer.

This change maintains the "no copy" semantics but retains the original
buffer using the objc runtime. When the write completes, the original
buffer is released.
Support for Xcode 6.1
Extra checks around reading/writing to socket.
Merge pull request #72 from kgoodier/fix/socket-write-crash

Fix crash when write buffer is not retained
Merge pull request #73 from kgoodier/fix/xcode-61

Support for Xcode 6.1