Unified damage types

Refactored and improved damage types.
I removed most special handling of different damage types, only thing that left is fire and smoke generate by blast. I made decision not use `bool` to alter damage types, I choose use `float` because it give more flexibility for mods (like real armor piercing AP ammo or dumdum bullets).

Some important changes/fix compared to basic version:
* Explosion dont remove unconscious body if it didnt kill unconscious unit first.
* Using range weapon as melee use DT_MELEE not DT_STUN damage.
* Explosion now record `killedBy` if it wound target.
* Explosion now change morale of affected units.
* Explosion dont steal `setExplosive` of other explosions.

Available options per item:
* damageAlter
  * FixRadius //aka BlastRadius
  * RandomType //how roll damage range, UFO or TFTD style or default.
  * ResistType //what resist on unit use, and if is fire or smoke it spawn that.
  * FireBlastCalc //fire had special way of calculating blast.
  * IgnoreDirection //damage ignore direction of hit, used by smoke and fire.
  * IgnoreSelfDestruct //do killing using this damage ignore self destruct of unit.
  * IgnorePainImmunity //big unit dont get stun level form damage.
  * ArmorEffectiveness //how much armor is effective against this damage.
  * RadiusEffectiveness //how power translate to splash radius.
  * ToHealth //how much damage is done to health, can be negative.
  * ToArmor //how much damage is done to armor.
  * ToWound //determine probability of wounds.
  * ToItem //how much power is apply to items.
  * ToTile //how much power is apply to ground.
  * ToStun //chow much damage increase stun level.