Added flush(), support check methods, MS updates

Derived Stream classes must now implement canRead, canWrite, canSeek,
and flush methods.

close() will automatically call flush on the Stream and catch any
exceptions.

MemoryStream and StreamWrapper updated to implement new Stream methods.

Added new constructors to MemoryStream.