Move array database type casting to the Array type

The case where we have a column object, but don't have a type cast
method involves type casting the default value when changing the schema.
We get one of the column definition structs instead. That is a case that
I'm trying to remove overall, but in the short term, we can achieve the
same behavior without needing to pass the adapter to the array type by
creating a fake type that proxies to the adapter.
Merge pull request #15778 from sgrif/sg-pg-mutable-arrays

Move pg array database type casting to the Array type