SNS/SQS region failover

Support region failover: subscribe to every region, publish to the active region. Changes to the fluent syntax:

CreateMeABus
    .InRegion("eu-west-1")
    .WithFailoverRegion("us-east-1")
    .WithActiveRegion(() => "eu-west-1")
    .WithSqsMessagePublisher(configuration => { });

Some tidy up.

Need to factor out the AWS client creation so that we can Unit Test this.