Make output of checkers.main a little nicer
Warn about {1} or {1,1} repeat spec (fixes #15)
Merge remote-tracking branch 'birkenfeld/flag_braces' (pull request 18)
Add a sanity check that escaped curlies are okay.

This is a precursor to running experiments with the 'regex' module rather than
're' in Pygments.
Check more patterns in manual_check_for_empty_string_match.

We're now confident that default() is here to stay, so any lexers intentionally
matching empty string should use that (even if it means duplicating slightly):

    (';*', '#pop'),

becomes:

    (';+', '#pop'),
    default('#pop'),
Merge pull request #17 from birkenfeld/small_changes

Make output of checkers.main a little nicer
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
Add test for \r\n in charclass simplifier.
Omit square brackets in charclass simplifier for a single category.

Fixes #13
Prefer \w\W as a match-everything class.

Fixes #6