add model and syntax for explicit script failures (exceptions)
add StackTrace class to keep track of language-internal trace
use and always update StackTrace in interpreter
add exception classes for errors in the interpreter and errors raised by the script
fix some exception handling in InterpreterImpl

StackTrace should not be modified when dealing with a real error.
leave() should only be called if the exception represents a RETURN.
Interpreter interface: declare thrown exceptions
InterpreterImpl: when XSemantics fails, check the cause and throw different exceptions
Interpreter program: catch declared exceptions and output them
fix ExpressionInterpretation: "hide" checked exceptions
implement interpretation of failure statements
provide better exception output
several StackTRace fixes

* initialize attribute
* reverse output order in toString() (top entry of stack first)
* Entry: handle elements without a node
* Entry: better toString() output
* remove unneeded import directives
fix failure message interpretation
StackTrace: add leaveAll() method to reset the currrent trace
interpreter program: exit with failure code in case of exception
REPL: print special exceptions properly, call leaveAll() on stacktrace
validation: adjust for failure statements

Consider FailureStatements when checking if a func always
returns a value and when checking for unreachable code.
Merge branch 'errors'

This closes #7. Note that unlike specified there, this implementation
does not include try-catch-finally blocks or global catch procs. It
just allows a script to abort interpretation with a given error message.
More advanced concepts MAY be implemented in a future feature.