#5618. Diplomacy Stance checks on weapons and warheads.

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. Moved some common functionality to DamageWarhead from derived classes.

Closes #5618.

Note. This pull request does not include the updated map.yaml for the various maps, but the upgrade rules are included.

Will create a test branch tomorrow.
IMO it looked better when it destroyed all the resources in one step.  My preference would be to remove the other DestroyResource warhead, and leave this as Size: 2.