Created Classes Command and CommandException for future parameter handling.
Implemented first command: LexerCommand.
Lexer: now AutoCloseable
Implemented LexerFactory.
Implemented ParserFactory
Stubs for PrettyPrinterFactory and PrintAstCommand.
Removed unecessary PrettyPrinterFactory.
Implemented PrintAstCommand.
LexerCommand: log message now logs on debug instead of trace.
Implemented SemanticAnalysisCommand.
Implemented ProgramFactory.
PrintAstCommand, SemanticAnalysisCommand: now use ProgramFactory.
corrected type failure: [SematicAnalysisCommand -> SemanticAnalysisCommand]
ProgramFactory can now create semantically analysed programs.
SemanticAnalysisCommand now uses ProgramFactory.
CommandException now converts specific exceptions to specific command exceptions.
Commands now don't map exceptions by themselves.
Added FirmException.
Implemented CompileFirmCommand.
Made CommandException.newCommandException(final String prefix, final Throwable cause) private.
BugFix: ProgramFactory.newSemanticallyAnalysedProgram(Path[]) now really does semantical analysis.