Lets multiple threads and external processes concurrently output to the
console, without it getting all garbled up.
Built on top of that is a way of defining multiple output regions,
which are automatically laid out on the screen and can be individually
updated by concurrent threads. Can be used for progress displays etc.