Regular interface by which users configure custom settings for modules, and modules implement those customizations at initialization time. The customization process does not depend on prior loading of the target module in order to register customizations. The module, conversely, controls adoption of the customizations. It is responsible for actually assigning the variable, and should return the value assigned.
Custom vars with no designated assignment function actually use the 'assign' routine, below.
It simply assigns the value to the var within the module. Custom val is deployed if the var has already been implemented. NameError raised if get attempted and no val set. NameError raised if get attempted and no val set. NameError raised if get attempted and no change func set.