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).
This should become:
```public readonly ImpactType InvalidImpactTypes = ImpactType.None;```

Note: ImpactType.None should = 0.