Fixed SystemTime printing, and removed unused write_date_to_stream.
New version of destroy() that works with polymorphic objects.
InterfaceWithCapabilities idiom.
* Either: Improved when<>.
* Either: either_switch as a free-function alternative to when<> for brevity.
* Either::get<>
IEventHandle missing virtual destructor.
Missing include.
* Integrated non-blocking I/O with IInputStream/IOutputStream.
* New IOEvent reporting mechanism using Either with read/write.
* Updated FileStream, MemoryStream, FormattedStream, NetworkStream, ConsoleStream.
Moved PipeStreams to separate implementation.
E generalisation for all exception types.
* Reactor API (reactor::popen, reactor::listen, reactor::connect, reactor::stdin).
* Moved libevent bindings to platform/.
* New IEventLoop API that assumes nothing.
* Capabilities-based IEventLoop integration with Reactor.
* IEventHandle::set_timeout.
Missing includes.
Added IOutputStream::is_write_nonblocking and IInputStream::is_read_nonblocking.
io/util: read_until_event
Moved reactor::popen test to reactor_test.cpp