The old code let each defender fire on each target separately. To
avoid charging ammo multiple times, it didn't update the defenders
after fire; it charged them in use_ammo() instead. Bugs: not updating
the defender lost any shells fetched by automatic resupply, and
use_ammo() always charged one shell for gun fire, which was wrong for
most ships and land units.
Rewrite to let each defender fire once, updating it normally. Reuse
the damage for the other targets. This also yields the proper
probability distribution for damage.