Param Subsystem

Redesign of the param system by Pete and others ( #123 & #988 ) has stalled over the issue of the code that uses params needing to be able to distinguish between undefined, defaulted and user specified values.

There are many params still (pete estimates about 7%) whose use depends on the ability to recognise the distinction between undefined and defaulted. The initial version of the param system re-design did not support this distinction.

#767 was created as a place to define defaults for params and to specify which params have triggering behaviors for undefined values. This list was complete at one time, but has not been kept up to date as parameters are added/changed.