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 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