Re-implement URIStringUtils escape and unescape using Unicode
Now escape only performs the absolute minimum amount of escaping
necessary. All String inputs are treated directly as UTF-16 characters
and only the smallest amount of 7-bit US-ASCII characters are escaped.
These characters are " ", "%", "#", "/" and "&". All other unicode chars
(> 127) are written directly as is into the escaped output.
The main effect of this change is that Simantics database URIs will
contain much less escaped characters than before. Since we always deal
with Java String (Unicode) character sequences in Simantics and these
URIs are only valid within Simantics, this approach doesn't really cause
any problems for us.
This implementation is not in accordance with RFC 2396 - Uniform
Resource Identifiers (URI): Generic Syntax but it works for us.