Add constraints to ensure DomainObject::save never saves more than 1 row
Add Collection::save() and Collection::delete()