program_options: allow configure switch-stytle option programmatically
program_options: allow configure switch-stytle option programmatically

before this change, a `program_options::value<>` cannot be configured
programmatically. if we configure a switch option and then mutate an
`program_options::option_group` with this option, the switch option is
always reset if the mutator does not contain that option even we
set that option with a default value beforehand.

after this change, `program_options::value<>` tracks its value with an
`optional<bool>` like the other specialization `program_options::value<T>`.
so its value is overriden only if it is not preset. this allows us to
configure switch-style options programmatically. so its behavior is more
consistent with other `program_options::value<T>`.

Signed-off-by: Kefu Chai <cdc92d111bae0ed1ee3b3c8a1f849fcffc6b44f7@gmail.com>

syuu1228/seastar,syuu1228/seastar,scylladb/seastar,scylladb/seastar,syuu1228/seastar,scylladb/seastar