'Resolve a "lazy" setting: when the config setting is callable,
call it once and store the result. A callable setting takes
the default value as parameter.
This method allows settings to depend on user authentication
(e.g. org-dependent variations), or involve database lookups,
which is only possible /after/ the initial config.py run.
Normal pattern:
return self.<subset>.get(key, default)
Lazy pattern:
return self.__lazy(subset, key, default)
@param subset: the name of the subset of settings (typically the module)
@param key: the setting name
@param default: the default value'

def __lazy(self, subset, key, default=None):

    setting = self[subset].get(key, default)
    if callable(setting):
        _key = ('%s_%s' % (subset, key))
        if (_key not in self._lazy_unwrapped):
            self[subset][key] = setting = setting(default)
            self._lazy_unwrapped.append(_key)
    return setting
