Maintain column order when overriding existing columns

Working towards re-implementing serialized attributes to use the
properties API exposed the need for this, as serializing a column
shouldn't change the order of the columns.
Merge pull request #15390 from sgrif/sg-property-order

Maintain column order when overriding existing columns