Complain more constructively about silly repetition counts.
Trick Pygments unistring into only giving us BMP ranges.

Now that pygments/unistring.py includes non-BMP characters, some checkers take a
really long time without this commit.
Improve eval_char with more tests.
Improve consistent_repr for future use in character classes.
Split flags/effective_flags, which includes Directives.
Simplify code for esc(c) in a common place.
Allow the charclass optimizer to raise WontOptimize

Some classes are just too hard to read, related to issue #12
Don't consider double negative character classes.

Partial revert of issue #1
Support IGNORECASE in charclass optimizer.
Don't suggest invalid [^] anymore.

Fixes #11
Avoid optimizing alphanumeric that aren't \w

Fixes #12