Re-design the test DB schema, for better tests and bench script

This redesigns the test DB schema to be better setup for using it
with the bench script and for expanding the system tests. This
adds a column of each type and separates the table relationships
out a bit. This is for clarity and more real-like usage. This is
prep for using the same DB schema and ActiveRecord in the test
suite and bench script.

This involved a large number of changes because of the
"coupling" between the system tests. Though this is like the
anti-pattern mentioned previously (having specific support
files/logic for multiple tests), this is mostly a necessary evil
when interacting with the DB. Though it is probably possible to
re-design the DB for different tests, I don't think the overhead
and speed hit to the test suite is worth it.