Rather than a setDefending method, BattleCharacters now have defend() and clearDefend() methods, which set isDefending to true and false respectively
Battle now handles the case where a character tries to use a spell when he has none
Improved the spell dialogue a bit
Added an isEmpty() and other methods to SpellBook