Further update to lit-based unit tests.

Use more regex and more test lines to ensure that, for instance, we have an unbroken chain of expected state transitions (x -> y -> z for some value of x,y,z). Previously, we basically tested that almost-hardcoded values were passed to tesla_update_state(), which didn't allow for TESLA to renumber the states, and we often didn't check that the relevant transitions were actually taken.

Where we did check that transitions were taken, it was usually of the form "something was updated", rather than "the automaton instance named above was updated from state X to state Y, where X and Y are defined in the tesla_update_state() output preamble".
Trivial: this TODO has been done.

We now output the ID of the new, cloned-to automaton instance.
Test update with a loop transition.
Split up init and cleanup logic.

We only need to do cleanup once, whereas we might need to handle several <<init>> transitions. Also, cleanup should also come after init; we don't want to be left in a post-cleanup state that isn't really cleaned up.
Trivial: stop re-defining GLOBAL_STORE regex.
Use tee here, too.

The use of tee increases the immediate visibility of test result problems.
Add a test for transition combining.

When a single event can cause any of a number of transitions, all of those transitions should be combined into a single 'struct tesla_transitions' before being passed to tesla_update_state().
We don't need TESLA_TRANS_FORK any more.

Now that we have a more complete treatment of inclusive-or, we don't need this slightly-magical "fork me" command.
Don't break at the first taken transition.

We may need to take more transitions!
Rename some variable for clarity.

'key' -> 'pattern' (the pattern we're looking for)
'k' -> 'inst_key' (the instance's key)