RFC (DO NOT MERGE): Abstract test definitions

RFC (DO NOT MERGE)

Allows tests to be run with different dependencies.

I'm not in love with this, but I think it would be a _very_ nice pattern for specification checking. It would allow us to eventually have a separate clojure.spec (a là rubyspec).

If there's a better way to manage the test definitions vs. dependencies I would love to hear it. I was thinking about trying to write some edn -> test thing but it felt like too much overhead.