"Version 2" Development

A major refactor.

This update will abstract the parser away from the analysis and presentation. The syntax of the grammar may also be made slightly closer to pure BNF. Might want to create a header section that defines names for each of the BNF tokens.

Proposed new file format would consist of three sections:
 * Header: definitions of config values and define tokens
 * Grammar section: this section will have all of the productions of the grammar
 * Raw user code section: It says it on the tin

The new parsing process will consist of four main steps: 
 * Parse into the three main sections
 * Create a table of tokens for productions
 * Create a representation of each of the expansions
 * Compute the lookahead parser form the input