Add some tests.

Trying to auto-release on close to make them pass. Somehow this breaks a bunch of tests, which seems strange.

Alternate design: don't auto-release on close, but be sure to resolve the promise previously returned by `ready` somehow. This could be nicer in that the reader still works and, for all practical purposes, the stream itself also works.