Refactor serialized types to be partially defined as custom properties

Many of the methods defined in `AttributeMethods::Serialization` can be
refactored onto this type as well, but this is a reasonable small step.
Removes the `Type` class, and the need for `decorate_columns` to handle
serialized types.
Merge pull request #15398 from sgrif/sg-serialized-types

Refactor serialized types to be partially defined as custom properties