Added ability to make upgrades

This is a continued version of #5375 rebased and ready to go.

If you want a testcase go to this branch https://github.com/WolfGaming/OpenRA/tree/D2KUpgradeTest it adds an upgrade queue and some upgrades to D2K, 4 of them are used to unlock buildings/units and 1 of them is used to give a 10% armor reduction for infantry.
But this raises a bit of a problem: Having every infantry unit add its own watcher to the tech tree is going to really hurt performance (relatively speaking).  It might be better to add a per-player UpgradeManager that adds one upgrade watcher for each type, and then queries all infantry to enable it when it is acquired.