Test order is now fully randomized. (closes #78)

Tests are now sorted and then randomized prior to being run.
If one or more tests fail, the seed used to randomize the order will be logged.
That seed may then be used to rerun the tests in the same order.

If the seed was predetermined (by the user), a warning will be logged
and `subliminal-test` will fail the run (under the assumption that tests should
generally be run randomized, to prevent test pollution, and that a seed will
be predetermined only for debugging purposes.)

Test relative order will be maintained regardless of focus.
Use a Chi-Squared test to check uniformity in random test order

Causes SLTestControllerTests to use a more robust testing method
to determine whether or not the randomization of test orders
chooses orders in a sufficiently uniform way.