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.
Introduced "global" parameters separately from "default" parameters
Added a bunch of deprecation warnings
Soft fail for _get_value_from_config and loops to pull value
Use default_from_config for the defaults for the global configs

Also don't enforce that only one of default and default_from_config is defined. In many cases it's useful to define both