Address deleted Products and Variants

Deleted `Products` and `Variants` can cause trouble in `spree_wishlist`, as discussed in https://github.com/spree/spree_wishlist/issues/65.

This migration and model decorator address the problem by removing `WishedProducts` whose `Variants` are long gone, and using `dependent: destroy` to get rid of any future `WishedProducts` attached to `Variants` that get destroyed later.