Made all of the classes less directly dependent on each other by
introducing more dependency injection. They now reference some
superinterface / superclass instead of the needed class directly. Added
a new module to help this out (ExecutorModule).

Implemented ExpressionExecutor (no tests yet) and execution of
ExpressionStatements by using it.

Stripped the printStackTrace utility of TerminalRunner for quick
debugging, I'll add it back in eventually.