Merge pull request #52 from adam-vessey/7.x

Generalize logic used to determine support for a codec in IM.
Make derivative generation optional.

By default, derivatives will only be generated if they do not already
exist on the given object. If it does exist, we do nothing.