Cleanup SNS code

As per the (now-removed) message in `sns.go.`

I've separated this file into several different files:

* message.go - The Message struct, nothing else
* permissions.go - Permission requests + their structs
* subscription.go - Subscription requests + their structs
* topic.go - Topic requests + their structs