UI improvement, bug fix, and refactoring

Arrows now indicate active character and valid ability targets, instead
of changing the sprite's material. Characters can no longer move to the
opposite team's grid. Several refactors to clean up classes and make
roles more clear. Some items are marked "TODO" in script code.