Iterative heightchanger

Rewritten HeightChanger to follow an iterative approach using a Queue of active Positions. Also, the iterative approach makes more use of functional operators. As a result, the complexity of the method is greatly reduced without changing the behavior (verified through play-testing).

This became another pull request as to not interfere with the improvements of Fiero99. The improvements with regard to javadoc fixes and structural changes besides the `findAffectedByRaise` method (which has been renamed to just `findAffected` for brevity) are taken directly from the pull request by Fiero99.