rfe13043: Encode #\% chars that appear in path component

Make sure any #\% chars that appear in the path component of a uri are
encoded when parsing a uri, and are properly decoded when calling
render-uri, so that the uri produced is readable again by parse-uri.

Also, fix the error message when reporting a percent-encoded character
with non-hexidecimal digits. Now it reports the actual characters
encountered, instead of '%c%c'.

<release-note>
rfe13043: Fix encoding and decoding of #\% characters path of uri.

When parsing a uri, #\% characters not part of a percent-encoded pair
of hex digits were not treated as a special character. As a result,
uri-parsed-path would error when passed a uri containing them. Also,
render-uri would produce a string containing an invalid uri. This
patch corrects the problem.
</release-note>

Change-Id: Ic16d98bb93f16666a9d0146ea2e72a18b22380e1