Sound modularization

Abstracts away need to provide instanceIDs to stop a sound. Just a name can be provided. soundDatums within a LayeredSoundDatum renamed to soundLayers to better represent function. @kadst43 @BrettASwift 
You used a for...in loop for the outer loop, why not do the same for the inner loop?  Or else make them both fetch the keys and loop over those.