Extract addFacetForModel logic to its own function.
Extract addFacetForModel to its own function.

* This removes the duplication.
The fourth failing test.

Removing a model from the collection updates the counts
(decrementing them).
Make the failing test pass quickly.

Copy/pasta to run the model through the criteria function and
remove its facet.
The fifth failing test.

* If a facet no longer exists in the new collection, it is removed.