Take SNS credentials via block

At the moment because the AWS credentials are provided at configuration time there is the possibility that if temporary credentials are being used then by the time a notification is sent the credentials may have expired.

By instead accepting a block which will return the credentials when invoked, we can now grab the credentials when needed allowing the code configuring babysitter to request the temporary credentials at the time they are needed