ENG-6071 Allow partition column and replicate/partitioning changes on empty tables

This has most of the code for unique indexes and other changes, but doesn't have the CatalogDiffEngine code or the supporting tests yet.
The double-negative wording here is a little awkward "Unable ... unless it is empty." sounds like we're saying "Unable ... or maybe it's empty". Would prefer something more emphatic like "because it is not empty" or ""while it is not empty" -- maybe Andrew if ask can word good here.