Read methods to copy data into external byte[] sinks.

I don't think you want `require()` here. If the source has only 5 bytes left and I ask to read 1024, I should get 5 bytes. But `require()` will throw if there's anything fewer than what's requested.