Merge pull request #4 from Mistobaan/master

Improve README
Add a mechanism for specifying timeouts when making calls to S3
Merge pull request #5 from multiplay/master

Restore timeouts support when making calls to S3
fixed typo which prevents creating queue with multiple attrs
Merge pull request #8 from collectivehealth/master

fixed typo which prevents creating queue with multiple attrs
Removing extra blank space at the end of the line in the response file.
Adding Queue.DeleteMessageUsingReceiptHandle so that dependent apps may pass around strings instead of having the whole Message object for deletion from the Queue.
Add targetArn param to sns.PublishOpt{} & to params in sns.Publish()
Merge pull request #10 from BountyLabs/master

Add targetArn param to sns.PublishOpt{} & to params in sns.Publish()
Merge pull request #9 from jemiahlee/delete_using_receipt_handle

Add a method to delete a message from the queue using a string
Cleanup SNS code

As per the (now-removed) message in sns.go.

I've separated this file into several different files:

* endpoint.go - Endpoint requests + their structs
* message.go - The Message struct, nothing else
* permissions.go - Permission requests + their structs
* platform.go - Platform + Platform application requests + their structs
* subscription.go - Subscription requests + their structs
* topic.go - Topic requests + their structs

This is a cherry pick of my mitchellh/goamz#f58cad4 commit. This commit has the more built-out changes from goamz, meshed with the organisational structure of the mitchellh commit.
Remove commented out debug code
Remove topic+message args from sns.query

This function never did anything with topic or message. Not only that, it was always called with the first two arguments of nil.
Remove sns.DeleteTopic

It doesn't make much sense for this function to be on sns, when you're passing in a topic object and then calling Delete on it anyway. If you have the topic object, just call
Drop sns.Message
Correct Topic.Delete() test

Topics need a related SNS field to know which endpoint to hit for the request.
Pass message around as a string, not an 8192-byte
Set Topic.SNS in sns.CreateTopic()

Conflicts:
	exp/sns/sns_test.go
Set Topic.SNS in sns.ListTopics

Conflicts:
	exp/sns/sns_test.go