Implement AWS as a cache storage

The commits https://github.com/carrierwaveuploader/carrierwave/commit/7a993542701b that's related to https://github.com/carrierwaveuploader/carrierwave/pull/1312 added the option to switch cache storages. carrierwave-aws needs that.

However the carrierwave version with the functionality wasn't published yet, so this implementation isn't ready to be merged, this PR is a WIP to get the code ready for when that's published.