First attempt at a UnicodeRangeMatcher

Not there however.
BaseParser: remove UnicodeChar for now

Will reintroduce it once UnicodeCharMatcher makes it in
Remove SupplementaryCharMatcher
Add base UnicodeMatcher, modify code accordingly

However, will need to resolve conflicts once stats are reworked!
Add UnicodeCharMatcher implementations plus first tests

Tests are lacking though. Labelling in particular...
Remove UnicodeRangeMatcher for now

Will need to recreate by extending AbstractMatcher
UnicodeCharMatcher and children: implement .clone()
Move Unicode*Matcher classes to their own subpackage
Create UnicodeMatcher, UnicodeRangeMatcher; extend MatcherVisitor
Implement all possible cases of UnicodeRangeMatcher

No less than 5 possible cases!
UnicodeRangeMatcher: actually generate matchers for non strict BMP ranges :/
Unicode*: implement .clone() everywhere

By calling .super(). Meh.
Unicode*: rename some classes; add test for unique codepoint matchers

Namely, that the correct class is generated.
Unicode*: fix visitors
Unicode*: rewrite using CustomMatcher...

No need to duplicate its work.
Modify two visitors to account for Unicode

And fix a compile error too...
Fix two errors...

* We need to override .visit()!
* One more compile error in a visitor.
BaseParser: add UnicodeRange