Previously every option registered on a scope was also implicitly
registered on all enclosed scopes, and those scopes could have
their own value for that option. Sometimes this makes sense,
e.g., --level, but often it doesn't.
This change adds a recursive= registration option, which is
False by default.
It also sets recursive=True on some global options where that
It fixes various tests and scripts as needed.
CI passes: https://travis-ci.org/pantsbuild/pants/builds/53271612
Don't you want to add an explicit test that with recursive=True things work as you expect? Like with --xlong. I know these are tested elsehwere, but if those tests change we wouldn't want to lose it here.