Initial commit, and some basic parsing.
Refactoring to use StringBuffer.
Added 'Optional()' flag for rules.
Added Trim() flag.
Refactoring to make Node an interface.

This will be used to support custom non-terminal reductions,
where the user can define a rule that returns anything implementing
the Node interface.
Made sequence an alias for a slice of Rules.
Pulled rule constructors out of Rule interface.
Cleanup and refactoring.

Centralized API in appa.go and rules.go to make it easier to find.
Added reductions.
Beginning rewrite as a G-LALR parser generator.
Beginning implementation of rule construction.
Created LR item type.
Working on item sets and closures.
Created separate lexer.
Adding diagram of example grammar.
Plumbing for LALR collection construction.
Adding DOT output to help debug LALR collection construction.
Implementing LALR set closure.
Starting to work on lookahead propagation.
Creating Rule type instead of []Token.