Permute sort

This removes the potentially unbounded execution time from bogosort
by being more systematic, because obviously potentially unbounded
execution time is the main problem with bogosort.