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
Here's a test on [ideone](http://ideone.com/ORnSdn), it seems that the table is actually slower. I'll remove that and turn off tabs-to-spaces in Visual Studio