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)
This should be an enum too.