SNS cleanup

Hello,

I forked mitchellh/goamz and cleaned up the SNS code there. Then I noticed today that there's this more canonically-named repo and I posted to the golang-nuts list stating that this repo should *probably* become the repo for goamz. Therefore I'm going to be submitting patches back to this repo.

I'm starting with a major cleanup of the entire SNS package, splitting it out into several files. This way, if we want to find something to do with subscriptions or topics, we can look in those much smaller files than the one gargantuan file.

I've also pulled across the other commits I've made to mitchellh/goamz.

The tests are passing.