Fix for #22951

This is a fix for [Issue #22951](https://code.djangoproject.com/ticket/22951).

The code checks whether the object being passed to `deep_deconstruct` is a `type`. This change will account for types and classes that have `deconstruct`, but are not instantiated, during the migration serialization process.

A single basic test has been added.