Level tests

Adds a bunch of new level tests
Fixes a couple hairy bugs, where there was global data that would change between tests, that we now cache and reset between tests.

Running all these tests tasks a decent amount of time.  In particular, because there's still some bug I still haven't been able to track down where later tests take longer than earlier ones (i.e. if I run the test by itself it takes 2000ms  but if I run it after all the others it takes 5000ms).  I'm not sure whether we necessarily want them all to be run when we just do a plain grunt?

Note, you can run a subset of test(s) by doing something like the following:
grunt mochaTest --grep='turtle/1_[34]