Refactor some ugliness. Split gameengine a bit.
Add a simple battle system. First micro battles

1. Add a new pass in processturn: _resolveBattle
2. Add AttackRange parameter
3. Split gameengine into separate files further by extracting utils
4. Fix a tiny bug with empty messages to players
5. Add simple win conditions: "total elimination"