Make ./pants help and ./pants help <goal> work properly.

Make ./pants help and ./pants help [goal] work properly.

Fixes https://github.com/pantsbuild/pants/issues/866 and https://github.com/pantsbuild/pants/issues/839

Testing Done:
Options unittests pass. CI baking.

Reviewed at https://rbcommons.com/s/twitter/r/1482/
Kill pants own use of the deprecated goal command.

This pass does not go for docs, just code and scripts.

Testing Done:
Locally:
```console
$ ./build-support/bin/publish_docs.sh -o
$ ./build-support/bin/release.sh -n
```

CI went green here: https://travis-ci.org/pantsbuild/pants/builds/43877791

Bugs closed: 864

Reviewed at https://rbcommons.com/s/twitter/r/1479/
Fix missing import.

Reported by Zero Cho.

Reviewed at https://rbcommons.com/s/twitter/r/1483/
fix/refactor checkstyle

- Renaming BUILD.tools's twitter-checkstyle target to checkstyle since this is not
  twitter specific
- Adding build-support/checkstyle/* to wire up the checkstyle
- A few longer than 100-character per line java files fixes
- pants.ini, fix/change broken [checkstyle] to [compile.checkstyle]
- pants.ini remove suppression_files setting:
  There are a couple reasons for doing this:
  1) OS pants and com.puppycrawl.tools.checkstyle only supports single suppression file.
     The multiple suppression files concept is from a Twitter internal custom filter, which
     isn't applicable here.
  2) But more important, suppression isn't a required component for running checkstyle.
     Someone can perfectly author a coding_style.xml which contains no SuppressionFilter
     filter. And right now the checkstyle internally reads suppression_files list and injects
     them into the properties, which assuming the hardcoded SuppressionFilter. Doesn't make
     any sense. Anyone wants to use suppression, can still put checkstyle.suppression.file
     into properties setting under [compile.checkstyle] in OS pants, or any company specific
     pants.ini
- Adding the checkstyle task into the optional backend so when we run PANTS_DEV=1 ./pants
  in OS pants, it's added, however, it's not by default wired up in pants release. Anyone
  can still wire it up in their own wrapper (like what Twitter currently does)
- In ide_gen, currently it tries to read suppression_files from [checkstyle]. First, like
  I mentioned above, the default open source checkstyle doesn't have multiple suppression
  files concept. Second, the current setting points to an invalid file that doesn't exist
  anyway. So instead, I'm setting it to [] for now and will follow up with ide/idea owners
  later.
- Adding unit tests for checkstyle to prevent future regressions.

Testing Done:
PANTS_DEV=1 ./pants goal compile examples/src/java::
PANTS_DEV=1 ./pants goal test tests/python/pants_test/backend/jvm/tasks:checkstyle

Travis baking:
https://travis-ci.org/jinfeng/jinfeng-pants-fork/builds/43051952

Reviewed at https://rbcommons.com/s/twitter/r/1432/
Use subscripting for looking up targets in resources_by_products

And add a test for a regression that RB 1250 caused when multiple partitions
were combined with resources_by_targets.

Testing Done:
Ran tests

Reviewed at https://rbcommons.com/s/twitter/r/1380/
CmdLineProcessor uses binary class name (http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.2.1),

https://github.com/twitter/commons/blob/master/src/java/com/twitter/common/args/apt/CmdLineProcessor.java#L653

Classes that uses CmdLineProcessor as annotation processor would fail,

"Expected classname -> path, got "com.twitter.common.args.ArgsTest$App -> ..."

This patch adds $ to the class name matching, and changed the format of compile/jvm/java/classes/deprecation_report.txt slightly so it's easier to load in testing

Testing Done:
https://travis-ci.org/pantsbuild/pants/builds/44126276 passed

Bugs closed: 868

Reviewed at https://rbcommons.com/s/twitter/r/1489/
Updates to the pants essentials tech talk based on another dry-run.

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