Add support for multiple modules of the same type.

[ADDED]     ModuleType - a better module typing system than Class<? extends Module>
[IMPROVED]  Units can now have multiple modules of the same type, eg. multiple weapons.
            This is a prerequisite for implementing construction properly.
[ADDED]     Initial construction module.