Fix the read() single byte contract

Summary:
Fix the contract of the single byte read() to
work correctly.

Test Plan:
Unit and integration tests.
Address comments.
Merge pull request #17 from facebook/fix_read_contract

Fix the read() single byte contract