Add error handling to Read() and ReadOne()

This is necessary so that users of this API can detect errors (e.g. No such device after unplugging a USB keyboard) and properly handle them. Currently, applications will just busy-loop in that situation.
Merge pull request #2 from mstap/patch-1

Add error handling to Read() and ReadOne()