Refactor damage to use more common code

Put weapon shots into a base class that knows how to damage things
Refactor damage computation to only change the damage roll between shot
types