config: initialize bools as undefined (vs false)

If booleans are initialized as false, how does one tell the difference between a missing config setting (old config file) and a boolean that someone explicitly turned off (false)?

Being unable to distinguish between them makes it really hard to apply defaults.