Split out Building into ProductionBuilding and NonProductionBuilding
Added produce() and produceUnit() in ProductionBuilding to allow the
user to select a unit to produce
The proper unit is produced from the use of a Hashtable<String, Unit>
which returns an empty Unit (of whatever type the user wanted) and then
initialized.
Editted to make it work within the takeAction(Option option) standard