-Codechange: use enums for buildableUnits (based on patch by wangds)

On that note, it can be an uint8; this way -1 is UNIT_INVALID again.