Implements more sophisticated explosion animation/sound system

Explosions can now use different art for various situations (ground, water, air, ground target hit, water target hit, air target hit).
You can just do a return here if IsValidImpact is false, since if it is false, neither of the following two if statements will execute anyway.