test invalid buffers, set bytesRead = 0, and return undefined
instead of throwing, return undefined in invalid (too short) buffers
correct usage notes
make a quick benchmark script
do not read outside the bounds of the buffer
Merge pull request #9 from dominictarr/incomplete

on incomplete buffers, return undefined, and set decode.bytesRead = 0