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 for old parameters
- Soft fail for _get_value_from_config and loops to pull value
- Use config_path 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