Update collections rather than replace them in their entirety

If association proxies are updated by replacing the entire collection,
SQLAlchemy does an INSERT of the new associations before doing a DELETE
of the old ones, resulting in unique constraint violations.
Merge pull request #121 from reciprocity/feature/fk_nullability

Update collections rather than replace them in their entirety