Add proper unit tests for `RecordStack`

This adds proper unit tests for the `RecordStack` class. 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.

@kellyredding - Ready for review. I really like how the unit tests for the stack worked out. It's complicated logic in how it's recursive nature works, but breaking it down using the unit tests worked out well. I think it will be much easier to tweak this way.