Array#shuffle without arguments

TODO: according to specs it should accept an optional hash with :random key
pointing to a random number generator used for shuffling.
Merge branch 'kernel-rand' into array-shuffle
Stylistic changes in Array#{shuffle,shuffle!}
Merge branch 'master' into array-shuffle
Don't use self for methods coming from Kernel
Array#shuffle uses Fisher–Yates shuffle

Now the distribution of permutations should be closer to uniform.
Parenthesis around arguments in Array#shuffle!
Merge pull request #516 from jstepien/array-shuffle

Array#shuffle without arguments