Changed the upper/lower case convention used for names to be more typical for grammars, which is that terminal symbols get all-upper case names and non-terminal symbols are written in lower case.
1. Set the name of every pyparsing entity using a mapping function rather than having individual explicit assignments for every single entity.

2. Set up a simple way to run setDebug() on desired symbols when debugging.

3. Shuffled a few grammar terms around a bit.
1. Minor edits to remove some redundancy and add more comments.
2. Ran it through autopep8 to fix some issues
3. Added file header.