Stream checks to see if operation is supported

The base Stream class now checks to see if Reading/Writing is supported
and throws an UnsupportedOperationException if it's not.