Parsers for surrogate pair UTF characters

This is a work in progress. When done it will implement matching UTF-16 characters, which currently don't have a specific parser. 

To-Do:

* [x] Matching any single surrogate pair character
* [x] Matching a specified surrogate pair character
* [x] Matching ranges of surrogate pair characters
* [x] Optimize/refactor
* [x] XML comments