Corrected shield bounce and hull damage

- Shield bounce applies at current shield level, not max shields.
- Hull damage explosion only triggered if weapon glances off.
- Also moved the hull damage calculation into its own function in the
  same way shields are done.  Armor should be done too when more rules
  related to that are added.