Add a cache for module text and ast.parse result

Should speed up finding source locations for modules with many warnings
Make wide unicode checker much faster, warn only once per regex

Wide unicode literals usually come in large quantities...
Merge pull request #24 from birkenfeld/master

Fix false positives with regexes that match Python-like unicode escapes
Merge remote-tracking branch 'birkenfeld/ast_parse_cache'

The wall time of 'make demo' has improved by about 4 seconds on my machine, from
36 to 32 seconds, for a speedup of 10%.
Merge remote-tracking branch 'birkenfeld/fix_wide_unicode_checker'

This checker does not currently contribute much slowdown due to tweaking
sys.maxunicode in cmdline.py
Update test now that wide unicode checker only adds one error.
Fix pylint complaints; escape caret when in first position.
Add bit vector module.
Move lowercase_code to util.
Swap simplify_charclass to use a bit vector instead of sets.

This takes another ~6 seconds off 'make demo' on my machine, now down to 27
seconds.
Plumb re.I to simplify_charclass as intended.
Improve simplify charclass output for single characters.
Fix usage of the "ignorecase" argument of simplify_charclass.