XUriParser:
* TryParseScheme() needs to reject ':' in scheme that is not followed by "//"
* TryParseAuthority() needs to reject port number that exceeds the valid number range
* TryParseQuery() was simplified by combining the processing that happens for '&' and for '#' or '\0'
* Decode() needs to ignore incorrectly formed percent-encodings