Multiprocessing.

Something wonky happens when both unions and intersection exist
example: Run { Case, Case } Run { Case }

Output is buffered in a pipe, so total output of all tests must be less
than 4 GiB.  Hopefully isn't a problem, but we do have an exponential
number of tests.