Established a more logical structure for ASTs and Terminals. The next
rational step is to alter Scanner so that, instead of having
apply(String) return a List<String>, it returns a List<? extends AST>
with all initial ASTs being Terminals.
Converted scanner to return list of Terminal ASTs, instead of raw
strings. This will make life much easier on the Parser, which is
probably next.