Fix highlighting of character classes containing opening brackets

The character-class repository was recursively including itself, which
meant that the grammar was saying it was possible to start one character
class inside another.

This does not match the semantics of Python regular expressions.
Opening brackets inside character classes are interpreted as literal
characters, not as opening another, nested character class.

To fix this, I split the character-class repository in two: the
character-class now handles matching the entire character class, while
the character-class-contents repository handles matching just characters
inside the character class.

This fixes the parsing of Python regular expressions like r'[[]'.