Distinguishe between base and modified attack/defense of Unit.

Attention: this commit breaks compilation!
Unit::setHP() prevents HP falling below zero.
Refactored Unit::attack().
Removed BattleResult and integrated it as AttackResult struct into Unit class.
AttackResult now stores if attack could be performed.
Fixed calculation of modified defense/attack if no terrain is present.
BoardWidget::moveUnitIngame() uses refactored unit movement/attack system.
Removed now deprecated Engine::moveUnitIngame().