Add proper unit tests for `ModelFactory` class

This adds proper unit tests for the `ModelFactory` mixin. This is
setup for making significant changes to the factory logic. This
gets the tests in a good place before I begin reworking the logic.
The previous tests were all system tests that are confusing and
hard to follow. This removes many of the old system tests and
only keeps basic usage.