Fixup flag parser prep for phases - actually add option groups.

Testing Done:
Now real help:
==
$ PANTS_DEV=1 ./pants goal resolve -h
*** Running pants in dev mode from /home/jsirois/dev/3rdparty/jsirois-pants/src/python/pants/bin/pants_exe.py ***

resolve: Resolve dependencies and produce dependency reports.

resolve options:
  --ng-daemons, --no-ng-daemons
                          [True] Use nailgun daemons to execute java tasks.

gen:thrift options:
  --gen-thrift-version=THRIFT_VERSION
                          Thrift compiler version.
  --gen-thrift-lang=THRIFT_GEN_LANGS
                          Force generation of thrift code for these languages.

...
ivy options:
  --ivy-override=IVY_RESOLVE_OVERRIDES
                          Specifies a jar dependency override in the form:
                          [org]#[name]=(revision|url)
                          For example, to specify 2 overrides:
                          --ivy-override=com.foo#bar=0.1.2 \
                          --ivy-override=com.baz#spam=file:///tmp/spam.jar
  --ivy-report, --no-ivy-report
                          [False] Generate an ivy resolve html report
  --ivy-open, --no-ivy-open
                          [False] Attempt to open the generated ivy resolve
                          report in a browser (implies --ivy-report).
  --ivy-outdir=IVY_RESOLVE_OUTDIR
                          Emit ivy report outputs in to this directory.
  --ivy-args=IVY_ARGS     Pass these extra args to ivy.
  --ivy-mutable-pattern=IVY_MUTABLE_PATTERN
                          If specified, all artifact revisions matching this
                          pattern will be treated as mutable unless a matching
                          artifact explicitly marks mutable as False.

Bugs closed: 479

Reviewed at https://rbcommons.com/s/twitter/r/877/