Fixes bug 932819
as advised by termie make it as a subclass instead of patching the
Per Termie's suggestion, share as much as possible with ec2 module and
instantiate s3 module from it.
There is still some works to be done in the swift middleware but this
Documentation and tests are in the planning.