Simpler closed stream logic

I thought that when the stream closed it returned None, which meant it
was possible for the stream to return an empty string.

It would appear that this is not the case and that an empty string means
the stream closed.