Fix CloudSearch2 to work with IAM-based search and upload requests

Fixes https://github.com/boto/boto/issues/2657.
Correctly signs headers when submitting batch uploads and search requests.
There is no test coverage for the safe characters defined here.