Statement serialization mostly implemented, slightly tested

In particular, ‘create’ and ‘destroy’ aren’t done.
Test and fix if-statement serialization

Problem was if-statements with missing else-branches
Make the Universe in charge of output, lay foundation for input

Also introduce the Capture, which controls the temporary swap of output for testing.

The statements still take streams in their execute() methods but that will go next.
Statement::execute() now uses the Universe::output

This is much cleaner. The pattern before was defensible but was almost entirely plumbing, except for OutputStatement.
Remove a few stray ostringstream declarations
Value type enumeration correctly hidden as an implementation detail

Statement should be next.
Statement type enumeration now an implementation detail
Expression enumeration moved to implementation

Some null-checks and exception handling to allow even damaged tests to at least produce some output. Definitely not complete or consistent yet, but valuable here.