Implement buffered streams.

Adds buffering and line number counting to the abstract `Stream` class.

Currently it does not work well with sockets, especially in the builtin
HTTPD. Workaround for this is to use `DirectRead` method with sockets.
Some kind of socket timeout is possibly required for buffered sockets.