Expose a means to disable boolean settings

Enables `-Yboolean-setting:{true,false}`. This will be exploited
in the next commit to enable one to turn off a single component
of a group setting, such as `-Xlint` or `-optimize`.
Group settings should honor user-set individual options

In the last commit, we added the ability to explicitly disable
boolean settings form the command line.

This commit changes group settings (like -optimize), to leave
them alone if set explicitly.

Examples:

   `scalac -Xlint -Ywarn-unused:false -optimize -Yinline:false`

The mechanism for such settings has also been refactored to
`MutableSettings`, to let use reuse this for `-Xlint`.