Properly generalise unit production

The spawn method in production manager now does it all by using the
bwapi method canMake() and the new unit manager method
getLeastBusyUnitofType. Still need to account for archon production
though.