Add shuffle and shuffle! methods to Array extension

This pull request adds shuffle and shuffle bang.

Notice that I'm initializing the rand() on the initialization of the GEM. Ideally I would like to depend on the Random class but I don't think it makes sense to have the Array extension depend on the Random extension.

Thoughts on this would be appreciated.

Perhaps shuffle and shuffle! should be moved to the Random GEM.