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.