Fixed bug with NSArray getting mutated while being enumerated

Hi Nick,
There's a bug in the stopAllSounds:fadeOut: method. You iterate currentSounds and then call stopSound:fadeOut: which internally does delete some object in currentSounds, causing the exception. I was about to create a temporary copy of the array, but then I had a look at your code and discovered that reverseObjectEnumerator can fix the problem in a more elegant way... so I used it.