Support config only options.

This adds support for registering options that can ~only be supplied
via pants config (ini) files.  The support still allows for env var
overrides; however, the hope is these (along with user-ini override
files) are considered more obscure than command line flags and thus
the temptation to tweak config only knobs is damped by the most
obvious path being an edit to the checked-in build root pants.ini file.

This also tightens up some option checks for non config only options
to ensure option names are valid in all 4 contexts of environment
variable names, ini file key names, command line flag names and
python identifier names.