UnitType abstraction and construction.

[ADDED]     UnitType: Units are now defined by properties instead of classes.
[ADDED]     Construction module: Construct other units.
[ADDED]     GameUnitConfig: Different types of unit distribution configs.
Testing construction.

[ADDED]     Unit test for ConstructionModule.
Merge remote-tracking branch 'upstream/master'