Split away printing to standard out from printing into generic streams.

(This makes it so that if I support printing to an image in the future I can probably use the dispatch feature.)
Formatting cleanup and typos