Added  argument for flexibility when using multi-table inheritance.
Don't pollute the model namespace.

Track collection change status on the field instance instead of on
the model instance. I doubt people are using `collection_changed`
as a field bane, but it's better to avoid setting attributes on the
model instance if it can be avoided.