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 define `Hit` as its own ImpactType, and then check for Ground + Hit as `ImpactType.Ground | ImpactType.Hit`.