Made exception text more pleasent

Replicated the look of the error messages produced by mozilla's rust
language to make it nicer to look at.
Ironcreek Syntaxtree work-around

In order to produce visual representations of the ASTs generated by
Comicker, I used the website http://ironcreek.net/phpsyntaxtree. Since
it uses square brackets to denote tree branches and nodes, I cannot use
these as node names, and therefore replace them by <> when outputting
the text representation of the tree, since <> currently has no meaning
of their own.
More rigorous type checks

Implemented a function "possiblyType" in ArithmeticAnalyzer that does a
more thorough check of a node and it's children, to see if the complete
tree branch evaluates to something that COULD be a type. At this point
in evaluation, there is no knowledge about user-defined types, and as
such there can be made no conclusive decisions about whether a name is a
type or a symbol. Not sure if this check sohuld be taking place in the
arithmetic analyzer though.
Reorganization

Reorganized the main file to split up tokenization, parsing and
analysis, while providing better error messages through wrapping the
file reading in a function that produces a CodeSource with proper source
labels.
Block closing now included as child of block

The last character of a block i.e. ")" is now included in the opening
block object's children "(". The honest reason behind it is that when
outputting errors that related to entire blocks, the underlining of the
problematic block would stop one character short, and instead of
implementing some ad-hoc character incrementer for the exception class,
for dealing with blocks in a unique way, I figured this would be the
best way to do it. I also see no reason why blocks should not have
knowledge about their enders.
Started working with "vector-based" operations

Began looking at syntax requirements for code that would allow you to
perform operations on arrays of objects at a time.