More test goodness.

Return a Future that allows the caller to know when the tests are done. Also
refine isTestFunc by looking for @Test annotations. That's a JUnit 4ism, but
are people really still using 10+ year old JUnits. (I already know the answer
to that question, but I choose to ignore it.)