Document full current behaviour of proxy URL encoding

We may want to change this behaviour so that URLs are transparently
proxied rather than being messed with /at all/ in the proxy (other than
switching the host). Before considering that, this commit backfills
tests so that the current behaviour is fully specified.

 - when the value is already percent encoded:
   - most values stay encoded
   - some values get decoded before being passed on (+ and /)
     - previously our test for handling encoded urls was ONLY testing
       this edge case, which was quite misleading

 - when the value is not already encoded:
   - unreserved characters aren't encoded
   - special characters are encoded before being passed on
   - some of the set of reserved characters are encoded (!,*,',(,)) (due
     to golang not considering the full set of rfc3986 characters
     reserved)
   - the rest of the set of reserved characters are passed on unmodified

[#76815268]

Signed-off-by: Michael Fraenkel <fraenkel@us.ibm.com>