2.7.4 dynamic s3 hostname

This is a patch for Paperclip 2.7.4 which adds support for using a lambda for determining the S3 hostname to use for API calls.

this was needed because of an application that would choose between 2 buckets based on a column in the DB, and being that the buckets were in different regions, we needed to modify the hostname on the fly.

I added tests for the features as well. There are some failures in there, but it's the same failures that were in there before my changes. Hopefully everything looks good.