(PUP-2650) Defer deprecation warnings until we can read disable_warnings
The difficulty with using the value of the disable_warnings setting to
adjust deprecation_warnings issued for other configuration settings is
that we need settings to finish initialization first. Otherwise
deprecation_warnings become dependent on the order of setting
initialization. To account for this, I added a deprecated attribute to
base_setting, allowing us to mark any setting as deprecated completely
or allowed_on_commandline. And the code in settings to issue
deprecations now tracks deprecated settings as they are configured, and
then issues the deprecations after the application is initialized.