Fix SharedMemoryIO#read for binary data on Ruby 1.9+

Problem: On Ruby 1.9+, binary data was being returned incorrectly from SharedMemoryIO#read.

It took a while to track down, but the error was ultimately in the initialization of the buffer to `''`.

It is necessary to force the encoding of that string to 'ASCII-8BIT', otherwise the concatenation
with subsequent bytes will be transcoding into UTF-8 or whatever your local default may be.

This patch includes tests verifying the correct behavior.