Some cleanup/changes to how parameters are read from config

Missing parameters in config now raise a MissingParameterException instead of UnknownConfigException since there might be multiple places a parameter could be initialized from.