Fix parameter encoding so spaces work.

This fix was implemented by @coopernurse and bundled with some other sugar changes. I'm opening a PR in case you want the smaller bugfix separate from the other stuff. Without this fix, query parameters including spaces will not be signed correctly.

e.g.:

    request := aws.TemplateRequest
    request.Add("Action", "CreateSecurityGroup")
    request.Add("GroupName", "test-group")
    request.Add("GroupDescription", "group of test hosts") // this breaks the signature

I have not bothered with tests for this - just applied the patch and noted the new success.