Support CarrierWave as an optional backend

Paperclip is still default. BUT, neither Paperclip nor CarrierWave are included in the gemspec, so this is a breaking change.

As far as I can tell 1.) Paperclip still works the same and 2.) Functionality is duplicated to CarrierWave. There may be some subtle things you were doing that I didn't pick up on, however.

One potential hole is that I make a very simple attempt at using the Paperclip style definitions for CarrierWave versions. This will only work for the simplest style definitions.

Another potential hole is that there is not a good migration pathway between Paperclip and CarrierWave. But I think that this is something people are used to.

The way I've done the code extraction, it should be easy enough to integrate with other file uploaders in the future.

Let me know if you have any questions or would like anything changed/improved. I am going to start using this code in production this afternoon, so I will definitely make fixes to the CarrierWave side of things as I encounter problems.