Fix test suite to run on more or fewer than four engines.

Fixes #389 

This flushed out a few real bugs, but it was mostly putting in some `SkipTest()` calls and passing in an explicit number of targets to `Distribution`.

This should allow the testsuite to run on any number of engines.  Tested on `n == 5` and `n == 3`.