Move all parsing of configuration files to a Confvar module.
It covers the needs of all perl and shell scripts, including DEBUILD_OPTS, DEBUILD_SET_ENVVAR and the non-static RMADISON_URL_MAP_*. A test suite checks each function with various parameters.
Confvar does not force the caller to write the default value twice, and optionaly checks user value against a regular expression.
Because of rmadison, Confvar has to rely on the bash 'set' command to list all shell variables. This is an opportunity to consistently escape variable values. The test suite checks various special characters, both in Perl and Shell.
For the help message, Confvar reports each variable with its value, the origin of this value and the default value. If a default boolean value is 0, undef or '', and the logical value remains or becomes False, the value is not replaced (various scripts use various conventions for False).
The subshell parsing the configuration first runs in syntax-checking mode, then with -e in a clean environment (devscripts.conf(5) requires this). A line containing something else than an assignment is reported as deprecated. Lines like 'a= 2' cause an abort.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863118#65 explains why uscan, though supported, is not included here yet.