Implemented bonus for multiple players repairing (OpenRA/OpenRA##3748)

This works by finding the square root of the amount of players repairing, and multiplying the base HP restored by that. The square roots are cached to prevent extraneous calculations. I also changed a  `for(;;)` to `while(true)` to aid code quality. It's all compiled into `GOTO`s anyways