Use a singleton parser for testing

This massively decreases time to run the test suite
Handle UTF-8 in identifiers and whitespace
Add support for double literals in exponent form