Also build the 'repeat' test before running it.

Owing to our previous use of llvm-lit here, we did the slightly silly thing of building tests twice: once to check that they compile and once (with llvm-lit) to actually run them. With our new callback-based test harness, the second build should go away soon, so let's be very sure that we are building all tests with the first build type.
Create an explicit struct tesla_automaton.

Rather than making every instrumentation point provide information about the transitions it might trigger, let there be a static tesla_automaton that describes all of the transitions that can be caused by an input symbol. The instrumentation points then just need to translate language events into a (symbol, pattern) tuple.