Add a compiler option to do a deep copy.

You will basically never want to use this except in one circumstance:
It's really good at detecting invalid usages of intmap where the fact
that copy is normally really just an incref leaks through.

Fix up tests to use it correctly. Fix one bug this caught. Make
testmachine run against a variety of compiler flags in order to more
thoroughly test this.
Severe upping of testing game.

UNREACHED annotates lines that are not currently touched by the
deterministic test suite. testmachine_debug will then error if it
reaches any of these lines, thus giving us a test which exercises
that code. This commit includes a large number of tests generated
in this manner.

The quality of the tests isn't amazing - most of the time they'll
just create some intmaps and then immediately release them, but even
that is pretty great because it lets us catch memory leaks. Additionally
once I start adding in contracts to operations those will then be
exercised automatically.

Also included in this:

  * Allow testing with much smaller builder stacks, so as to be able
    to readily hit the edge cases
  * Fix some bugs in the code the compiler for testmachine generates