DatabaseBuilder orders the table columns: primary key columns first, in the order they appear in the key, followed by other columns ordered by name using InvariantCulture, case sensitive, followed by foreign key columns in the order they appear in the foreign keys, excluding duplicates (fk1.C1, fk1.C2, fk2.C3, ...).
When the model differ detects a new table it creates a CreateTableOperation, and AddForeignKeyOperations, CreateIndexOperations for its foreign keys, respectively indexes. The table passed to the constructor of CreateTableOperation is the target table. Instead it should be
a clone of the target table that does not include foreign keys and indexes since these are handled separately.

Made public the Clone methods from the database model classes.