Stream improvements.

1. Add more IO methods to `Stream` class, including method which reads
   UTF-8 encoded character data.
2. Convert `Socket` into subclass of `Stream`.