Warhead cleanups

This removes the remaining redundancy and floating point calculations from the warhead damage calculations.

The following are left for a future PR:
* Remove the redundant legacy "0% = no targeting" assumption.
* Remove the PerCellDamageWarhead type (which is bogus, and only used by the crate nuke weapons that we forgot to update when fixing the real nukes).
This needs to be removed