With the right macros, we can accomplish what currently takes
over 1,000 lines with far less code.
Much of what is in table_collection.rs is integration tests.
We should move these to tests/, which will have the added
benefit of forcing us to not rely on any internal details.