Allow client code to pass actual AWS credentials

This supports more complex use cases in which the BasicAwsCredentials are not
enough. Here is one example:

http://aws.typepad.com/aws/2012/11/delegating-api-access-to-aws-services-using-iam-roles.html