System output format tests

These cover all the updates as mentioned in #212.

We can potentially leave out hoisting, but live bindings would be nice to keep.