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
Ditch the caching unless you have performance measurements that show it's a substantial win in this case.