Factor out in-place shuffle

Also implement uniformPermutation in terms of uniformShuffle
It removes extraneous Vector v Int constraint from uniformShuffle
Allow empty permutations
Unused import