Support old-style flags even in the new flag system.

E.g., --compile-java-foo-bar anywhere on the cmd-line is the same
as ./pants compile.java --foo-bar.

This will make migration easier, as people are used to the old style,
and we may even want to keep this forever, if some users prefer
the verbose flags.

Testing Done:
Ran all the tests.

Reviewed at https://rbcommons.com/s/twitter/r/1093/
Tiny tweak to legacy option printing.

Also rewrote some comments for clarity.

Reviewed at https://rbcommons.com/s/twitter/r/1094/
Allow a task type know its own options scope.

E.g., JavaCompile should know that its options are under compile.java.

Also fix some stale comments from the goal->task terminology change.

Testing Done:
Ran all the tests. Tested that this works when registering options in the new style (will be sent for review in a future change).

Reviewed at https://rbcommons.com/s/twitter/r/1095/
Hook new-style registration up to the goal runner.

Provides appropriate special-casing for GroupTask.

Note: relies on https://rbcommons.com/s/twitter/r/1095/.

Testing Done:
Ran all tests. Manually tested new-style registration on top of this.

Reviewed at https://rbcommons.com/s/twitter/r/1096/
Add missing BUILD dep.
Switch a handful of flags over to the new registration style.

This includes a superclass-subclass scenario (ConsoleTask-ListGoals)
and a GroupTask scenario (JvmCompile).

Note that the code that reads and uses the flags needn't change yet.
The legacy flags layer places the values in the existing destinations.

Note: Relies on https://rbcommons.com/s/twitter/r/1096/.

Once this is in I will write up a quick guide to porting flags,
and then we can set ourselves loose on them!

Testing Done:
Ran all tests. Manually ran the relevant pants goals with various flag settings.

Reviewed at https://rbcommons.com/s/twitter/r/1097/
Patch code review comment fixes back in.

They got lost due to my misuse of ./rbt.
our example repositories snuck into the build dictionary.

Our internal_backend/repositories defines a couple of example repositories that our BUILD files can refer to.

Our BUILD Dictionary builder code looks at symbols defined in our BUILD files to figure out what do doc in http://pantsbuild.github.io/build_dictionary.html

So...

Give our old @manual.builddict() decorator a new optional arg, suppress.

Mark those example repositories with manual.builddict(suppress=True)

BUILD Dictionary builder checks for suppress==True and omits those

Testing Done:
publish_docs.sh , eyeballed

https://travis-ci.org/pantsbuild/pants/builds/36815549

Reviewed at https://rbcommons.com/s/twitter/r/1101/
Protobuf and payload cleanups

Moved some of the protobuf examples around to be more consistent.
Some cleanups from payload refactoring
Added a deprecation message for the unused 'buildflags' attribute in java_protobuf_library
Removed the ability to use a jar_dependency in java_protobuf_library imports.