Adds Diplomacy keywords for ValidTarget checks.

Changes:

Allows diplomacy stance checks to be done on warheads and weapons, using keywords in ValidTargets and InvalidTargets.
Additional changes: Changed Weapon.Impact to use Target instead of WPos.
Split out some common functionality to DamageWarhead from its derivatives.
Ioncannon changed to AbsoluteSpreadDamage.
Detonating Madtank now affects other Madtanks, but still not itself.
Changed LaserZap projectiles to AbsoluteSpreadDamage.