Configuration parameter system reworked.
This adds a list of ?official? configuration parameters together with their
types, default values, and explanatory messages. An extended method,
DB::get_config_x(), is used to retrieve all of this info, and DB::get_config()
is changed to return the default value from the list if the parameter is not
set in the database.
In the pl-conf command, there are some new --query suboptions: --all outputs
all configuration parameters, not just those that are in the current list
database; --modified outputs only those parameters whose values differ from
the built-in defaults; and --defaults outputs the built-in default values
of parameters rather than their actual values.
This change is really for the benefit of Project Guinevere, which needs to
be able to produce a list configuration page containing all possible parameters
rather than just the ones that happen to be in the database at that point.
We will still have to go through the files and adapt all the calls to
get_config() to remove the hard-coded defaults, and we can also get rid of the
big default parameter list in DB.pm.