[WIP] [DO_NOT_MERGE]: introducing osc (end-user CLI)

Which of these do we actually need?  I know we have them today, but what value do they actually provide us?  I see some common cases:

* I'm formatting a table or list
* I'm displaying a chunk of data that is specially formatted
* I want to break up paragraphs of text

The first is the most common and doesn't need most of this.  The second is something a template solves better than structured code.  The third is for man output and wrapping of potentially verbose statements in setup wizards.  Those also sound like special cases, not regular output.

If we're going to do this form of output, we should be doing it on an interface and not on a global class.  Most of the things here look a lot like the log or glog interfaces (print warn info error).  The rest seem like different problems.

How about we define an interface that is just straight print/warn/error output, and start from there.  Let's try to avoid mixing color, which means we don't really need that interface.  Paragraph can be a helper function that we add later.