Specify :class_name options for InventoryUnit associations so that assigning them doesn't fail

This is due to an AR bug which assumes the class is not namespaced.
Make ProductDuplicator#duplicate_image actually return an object, not nil

Fixes sub issue in #2684
Specify :class_name for has_many images on Variant

Previously, attempting to assign invalid data (i.e. variant.images = [nil]) to this association would've resulted in an uninitialized constant error for Image, rather than erroring correctly on an association class mismatch.