RulesParser: use a dict to map backquoted string literals

Otherwise, \n is broken.

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
Rules{,Parser}: start buildilng an oo production framework

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
Rules{,Parser}: fix up pretty printing
Rules: start implementing some optimizations
Rules: Fix some bugs in __{deep,}copy__
FixPython.py (new): fix python's inability to test for string-ness without 2/3 trouble

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
refactor: move abstract code to OOParsing and RulesParsing code to RulesParser.py

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
RulesParser: implement AtomicProduction, VariableNameProduction, misc.

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
Add AssignmentProduction

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>