Implemented battle.initiate, added state enumeration and BattleException classes for clarity.