Add `reduceUnordered` to scalaz.concurrent.Future
Change tests to reduce to Set rather than gather

Previously `Future` and `Task` tests were gathering to a `List` and then
converting the list to a `Set` - this now tests the generalised
`reduceUnordered` method, which will remove the intermediate lists.
Make `FutureTest` not rely on result ordering

This test should probably instead be deleted.