Friendly fire modifier

Implementation for #5618.

ValidTarget and InvalidTarget on weapon allows/prevents targeting. (<- Was an existing feature)
ValidTarget and InvalidTarget on warhead allows/prevents damage + spread damage. (New)
ValidTarget and InvalidTarget on both weapon and warheads now understand the following keywords related to stances/diplomacy: "Ally", "Neutral", "Enemy" (New)
Or a better idea would be to make it use the same logic as the weapon's ValidTargets, which accepts more than just Ally/Neutral/Enemy.