fs: don't throw in read if buffer too big
If the resulting buffer.toString() call in fs.read throws, catch the error and pass it back in the callback.
This issue only presents itself when fs.read is called using the legacy string interface:
fs.read(fd, length, position, encoding, callback)
R=@trevnorris, @jasnell