Realized that we can rely on watching for the final two dashes ('-')
in the Lambda function name in order to get the stack name (which
may contain dashes itself). Furthermore, if the stack name is long,
the resource logical ID will be truncated and this breaks the old
logic.
First one to change (as a POC): SnsSubscribe. Main changes:
1. Break each helper out into separate files.
2. Use a directory structure that puts non-AWS on par with AWS.
3. Provide an interface than can be implemented and makes CloudFormation
stack deletion required.
4. Provide example templates (which can also be used to test the helpers).
I will migrate the other existing helpers in separate commits.
CloudFormation currently only supports adding subscriptions at the time
the SNS topic is created; it does not support subscribing to existing
SNS topics.