BattleOpponent made more generic

The local player is now an implementation of BattleOpponent. Rewrote
BattleScene and BattleModel to make parallels between local player and
opposing player more apparent. BattleAnimation instances are reused per
opponent instead of per battle. BattleScene clear color set to dull
green and FanSelect unselected entries color darkened. Fixed
NioSession#PacketWriter#flush and NioSession#PacketWriter#sendOrQueue.
All usages of Session.Reader and Session.Writer now are enclosed in
try-finally blocks to ensure #close is always called. Network games now
switch turns correctly, with the first move going to the host.