New parser and outputters

So this branch has gotten pretty massive and I think it's time to start reviewing it.

It doesn't pass it's outputting tests because the output has changed, but it seems to functionally work now, expect for some issues with Failfast + the outputters.

Main changes:
 * complete rebuild of the parser using pyparsing
 * complete rebuild of the outputters using blessings
 * considerable refactoring of the core to use try/except/finally blocks
 * pre-compile regexes
 * improved unicode cleanliness
 * code cleanups to facilitate a move to Python 3