Export refactor to allow for more export engines (WIP)

I want to be able to turn my parser engines into various formats. Right now there are two means of export: citrus and treetop. This pull request represents the work (starting and eventually finished) to both allow an easier architecture for adding new engines and a refactor of previous engines.