Project.pm: upgrade boolean settings to first-class citizens
Introduce a new prefix '!' to indicate that a setting is a boolean
and migrate the four pre-existing boolean settings that have been
handled as special cases to new '!' settings in the %propmap hash.
Also introduce default values for config file settings since one of
the previously special-cased boolean values needs to default to true.
Any of the config file settings in %propmap (or %propmapro), in other
words any settings that start with a [:%!] prefixed config name, may
now have a ":<defval>" suffix and if the respective config setting has
not been set then <defval> will be used for the value.
Finally, to avoid unnecessary additional (and slow) calls to the
"git config" command to set values, avoid running "git config" to
set the same value that is already there.
Signed-off-by: Kyle J. McKay <mackyle@gmail.com>