Multiprovider support

Sorry about the massive commit - I managed to change just about every file.  The changes aren't actually as big as they look.

This refactor would setup microstatic up for other 7 currently available Fog storage providers.

I created BaseDeployer and moved most of the S3Deployer code to it.  I left S3Deployer in place so you can easily separate S3 specific code from generic code, but right now the Rackspace/AWS implementation is so interoperable that S3Deployer doesn't contain any meaningful code.

I didn't test against a live AWS account, so you should check that.

I did test against:
* Mocked AWS
* Live Rackspace
* Mocked Rackspace (using [my branch](https://github.com/maxlinc/fog/tree/storage_mocks), because Rackspace storage mocking isn't released)