Bugfix to not use urlencode for query-string parameters

Currently the same function is used for 2 cases:

1) Key-value body parameters for POST/PUT requests.
2) URL Query-string parameters

Unfortunately, in the second instance, urlencode actually does the wrong
thing by translating space characters to '+' instead of '%20' (because
it uses quote_plus instead of quote).  This causes issues with creating
signatures using the query string as an input since it does not match what
the endpoint is expecting for the canonical query string.