Add proper, full parsing of bracketed character classes.

This will let us spit out Python and JS regexes so we can run Path- and RegexpFilters.

* Upgrade to parsimonious 0.6 for the `unwrapped_exceptions`.
* Add a min length arg to simplified() so we can use it to make tests more readable and writeable.
Make Unicode char-range bounds work.

Add some shamefully missing docstrings to the visitor.

backslash_hex does not actually match anything outside 0..256, but it's ideologically better to return unicode, so I replaced the chr with unichr there as well. (I'm unable to make re.match(r'\x2014', <anything>) match. If I could, I'd expand the definition of the rule to behave the same.)