Specify the expected output from 'update' test.

Since llvm-lit lets us set environment variables, we can actually check all of the VERBOSE_DEBUG output from the 'update' test program!
Do debug printing on stdout.

This requires fewer contortions with llvm-lit and permits the default "stderr => an error occurred" semantics.
Test more complex struct tesla_transitions.

Test what happens when we use a struct tesla_transitions with more than one struct tesla_transition!
Fix bug illustrated by previous (test) commit.
Provide State::RequiresFork().

When a state can transition in either of two ways (e.g. because of a boolean OR operation), we need to fork it.
Use equivalence classes in instrumentation.
More useful error message.
Use the right ConstructKey()!

Don't try to construct a tesla_key out of whatever arguments we happen to have prepared for tesla_update_state... we are supposed to be passing the instrumentation function's arguments to ConstructKey along with a description of what they mean.

This requires modifications to the callee.ll test: we need to use the correct number of arguments for each function!
Only build calle[er] instrumentation when needed!