Correctly detect end-of-file for a socket

Apparently it's not safe to mix system calls (`recvfrom`) and
buffered IO methods (`eof?`). I found a couple mentions of this,
nothing definitive, but when I tried using this in Sanford, I
ran into issues with an error message like:

`"recv for buffered io"`

It seems the only proper way to detect "end-of-file" (closed on
the remote end) for a socket that uses `recvfrom` is to see if it
returns a response of 0 bytes. This produces the same result (in
this gem) as the previous implementation, but additionally works
as expected in Sanford.
FakeSocket return empty string `""` when in stream is empty

This is more congruent with how a TCP socket behaves if there is
nothing to be read. It will return an empty string, so the fake
socket should do the same.
Merge pull request #15 from redding/jcr-fix-eof-detection

Correctly detect end-of-file for a socket