Failing unit test to expose available space bugs in GCDAsyncSocketPreBuffer.
Fix GCDAsyncSocketPreBuffer availableSpace bugs that lead to access violation.

It's easy to see the bug by putting the read pointer slightly behind the
write pointer both near the end of the buffer.
Merge pull request #205 from talko/availspacebugs

Failing unit test and fix for buffer overrun access violation in GCDAsyncSocketPreBuffer.