stream_base: introduce StreamBase
StreamBase is a brand new way to write C++ streams. The class itself is
for separting StreamWrap (with the methods like .writeAsciiString,
.writeBuffer, .writev, etc) from the HandleWrap class, making
possible writing abstract C++ streams that are not bound to any uv
socket.
Important part of the abstraction is following methods (which mimics libuv's stream API):