Converted Statement to a sealed trait.
Refactored views to know there is only one presenter - much simpler.
Removed unused FunctionDefinitionView function.
Moved some PrintStatementView logic to the presenter, much nicer.
Moved some SetStatementView logic to the presenter
Added test case for serialization of function reference with lots of args.