Fix CloudSearchDomain signing on EC2 instance

CloudSearchDomain requests are not signed if there are no credentials. Simply checking for `service.config.credentials` does not suffice, because this fails if the code is using EC2 metadata credentials. 

This is now fixed to detach the signer asynchronously if `config.getCredentials` returns an err (no credentials found).

I also fixed a couple of tests that were polluting process state.

This is a high priority fix, so please review and merge as soon as possible.