Implement using items in battle, refactoring

Still a few glitches that need to be fixed, but items work!  And thanks
to some required refactoring, all BattleUnits now handle action
execution the same way regardless of whether they're AI- or
player-controlled.  This should make the BattleUnit code easier to
manage.