make damage computations generic

Weapons now know the damage they do
Targets know what weapon hit them
Targets can apply the damage from the weapon spec
Weapons know what kind of explosions they make