Proxy readyState by listening on underlying stream.

This is better than Object.defineProperty which isn't fully
supported in all browsers.