For large test suites, this could theoretically hold on to a lot of memory for the life of the run. Unfortunately, using a weak hash map won't help, because the ClassLoader would keep a reference to the class object.

I would prefer us to explore making `RunBefores` public, but if that's not doable, we could make a version of `runBefores` that takes in a TestClass instance as well as a target (or, perhaps a TestObject class that wraps a TestClass and a target). I think that method could even be static.