getBoolean improvements

I got burned just now since `getBoolean` is case sensitive and didn't accept
`Yes` as true. One commit here makes it case-insensitive (and tidies up its
code a little at the same time) and another makes it also accept `on`, which is
pretty commonly seen (unix config files and such).