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).
Sorry for being a little slow on the uptake, but to be honest I still don't fully understand what exactly I have to do here.
Do I add that ```ImpactType.Hit``` instead or in addition to the ```ImpactType.***Hit```'s?
Do I have to change the GetImpactType function, and if yes, how exactly?
And how does the ValidImpactTypes have to look like after the change?

Basically, I can't get my head around the exact interaction between Hit and the 3 base impact types in your approach.