- small optimisation when copying bit-sets
- remove unused import
- cleanup formatting
- character matcher is now a real function
- character matchers are all created from factory constructors