BasicModel maintains a status flag indicated whether values have
changed. The flag is set to true whenever a column's setter function
alters the instance's value for that column. The flag returns to
false upon a successful load() or save() call at which point
the instance should once again match the database's record.

I added a corresponding "ignore_updates" property for columns. Changing
columns with this property will *not* flip the status flag to true.

I'm not concerned about the miniscule performance implications of
issuing an UPDATE query that doesn't actually change anything. The
status flag is only in use in the ProductsModel class and the
motivation is to handle timestamps and audit trails correctly.
Right now if someone loads an item in an editor, changes nothing,
and saves the result is going to be an UPDATE query that changes
the value of products.modified and nothing else plus a new
record in prodUpdate. The audit trail record is pointless clutter
and the change to products.modified is downright misleading.
The item was not modified in a meaningful sense.