Implement new feature to allow shuffling of Tests.
This adds new methods to Request class shuffled() and
shuffled(Random random) which will give a Request whose Tests will be
shuffled. The method shuffled() shuffles the Tests using a default
source of randomness. The method shuffled(Random random) takes a
Random instance as a parameter as it's source of randomness. A new
interface Shufflable with the method shuffle() is used by Runners
implementing this new feature to shuffle tests.