used shuffle() to shuffle in shuffled()

No need to have two different implementations of the Fisher-Yates shuffle -- this changes .shuffled() to call .shuffle() on the unshared copy of self.
removed reinterpretCast call by overloading at()

This adds a method overload for at() that takes an Int[] parameter so that it can be called from other methods without need for a (dangerous?) reinterpretCast call.
Merge pull request #16 from natecook1000/master

used shuffle() to shuffle in shuffled()