bug: Fix SignatureDoesNotMatch when putting files with special characters
Related to #277
@mechpaul discovered that putting filenames with some special
characters, such as \ and $ using the obj plugin returns a
SignatureDoesNotMatch error.
To reproduce:
$ echo "test" > 'test$file\name'
$ python3 -m linodecli obj put 'test$file\name' some-bucket
This change properly quotes the URLs such that these characters are accepted in keys.
This fix works for uploading, but it causes problems in the web GUI.

I was not able to test how it worked for public read. Setting the ACL to Public Read threw another exception: Unable to set object's ACL: SignatureDoesNotMatch.
Should keys in the object bucket be unescaped?
Hmm.. it does appear that the key is being stored escaped. That's not what I intended - I'll revisit it.