A couple of bugs fixed.

Fixed large units getting hit in on random sides.
Fixed HE pretty much always killing all items, including unconscious soldiers.

Details:
BUG:
 A large unit takes up four tiles, but a hit calculates
 the position hit on a single tile and BattleUnit::damage assumes
 that each tile has every side, which is not true for a large unit.

FIX:
 Calculate the relative direction of the hit and then
 classify it as one of 8 cardinal directions.
 Then rotate it according to unit.direction.

BUG:
 High Explosives explode forever.
 The loop here only stops if we do not destroy the 'last' item,
 or if we destroy _ALL_ items.
 So if all items except the 'last' survive but the 'last' does not,
 getInventory()->size() > 0 and the loop continues.

FIX:
 This loop is unnecessary.  Hit each inventory object once.
Why shouldn't sectoids breathe?
Just because of the one mission on the surface of Mars?

I think it's more likely the original Devs didn't bother making
helmets for that one mission.