- clean up the character parser subclasses to be simple matches (this makes
  the parsing slightly slower, but enables all kinds of other fancy tricks)
- added the ability to create flat copies of parsers
- fixed the transformation code to support self-referring parsers
- improved the debug transformation