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).
Nope, it is cumulative, so repeating a key twice won't behave any differently than doing it once.
Like I mentioned in the other comment: it would be much better to use this enum as an OR rather than an AND.  You would still have the `GroundHit` etc variants and the yaml would be identical, but you would no longer need an array of `ImpactTypes` on the warhead.