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`.
Merge pull request #70 from peelonet/more-streams

Stream improvements.