Restore the deprecation warning for specifying 'goal' on the cmdline.

Reviewed at https://rbcommons.com/s/twitter/r/1476/
Fixup test_test_builder.py interpreter caching.

Comparing PythonInterpeters directly is currently broken for systems
that have atime turned on for the filesystem hosting the python binary.
This localizes the 'correct' equality check proposed in:
  https://rbcommons.com/s/twitter/r/1477/

Testing Done:
The same change was tested against OSX here: https://travis-ci.org/pantsbuild/pants-for-travis-osx-ci/builds/43799766

This change went green against linux CI here: https://travis-ci.org/pantsbuild/pants/builds/43803116

Bugs closed: 865

Reviewed at https://rbcommons.com/s/twitter/r/1478/
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/
in help text for 'binary' goal, don't say "jar". Nowadays, could be a pex.

So be vague.

Testing Done:
Just in case: https://travis-ci.org/pantsbuild/pants/builds/44236259

Bugs closed: 782

Reviewed at https://rbcommons.com/s/twitter/r/1491/
Fix typo in thrift code generator name.

Testing Done:
https://github.com/pantsbuild/pants/pull/870

Reviewed at https://rbcommons.com/s/twitter/r/1493/
Simplify ScroogeGen.

It used to support multiple compilers, but no longer needs to.
This change implements a TODO to rip out that support.

This will make a future change (to switch tool registration to use
the options system) easier.

Testing Done:
Ran the scrooge unittest.

Reviewed at https://rbcommons.com/s/twitter/r/1494/
Revert "Simplify ScroogeGen."

This reverts commit 47ee133566c5a6eb2e34c7bc64a3801ee72a5a0f.
Revert "Revert "Simplify ScroogeGen.""

This reverts commit e95ccc94b7c511101bd37ea09a473ca038963d22.
Remove a broken line in ScroogeGen that was overlooked.
Prepare pantsbuild.pants 0.0.25 release.

Bump the version and add CHANGELOG entries.
Add a script to aid in prepping the CHANGELOG.

Testing Done:
Did a release dry run:
```console
$ ./build-support/bin/release.sh -n
```

Also rendered the CHANGELOG to sanity check - no warnings and looked good:
```console
$ source build-support/pants_dev_deps.venv/bin/activate
(pants_dev_deps.venv) $ rst2html.py src/python/pants/CHANGELOG.rst CHANGELOG.html
(pants_dev_deps.venv) $ open CHANGELOG.html
```

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

Bugs closed: 874

Reviewed at https://rbcommons.com/s/twitter/r/1496/
Fix the ScroogeGen target selection predicate.

This also updates the release version and CHANGELOG
in anticipation of a quick release.

Testing Done:
Before this fix, reproed the current CI failures with:
```console
$ pants.dev clean-all test examples/::
...
19:52:10 00:20         [compile]
19:52:10 00:20           [jmake]
                         warning: bootstrap class path not set in conjunction with -source 1.6
                         Jmake version 1.3.8-3
                         /home/jsirois/dev/3rdparty/pants/.pants.d/gen/scrooge/java-sync/com/pants/examples/distance/thriftjava/Distance.java:32: error: duplicate class: com.pants.examples.distance.thriftjava.Distance
                         public class Distance implements TBase<Distance, Distance._Fields>, java.io.Serializable, Cloneable {
                                ^
                         /home/jsirois/dev/3rdparty/pants/.pants.d/gen/scrooge/java-sync/com/pants/examples/precipitation/thriftjava/Precipitation.java:32: error: duplicate class: com.pants.examples.precipitation.thriftjava.Precipitation
                         public class Precipitation implements TBase<Precipitation, Precipitation._Fields>, java.io.Serializable, Cloneable {
                                ^
                         Writing project database...  Done.

FAILURE: compilation error
...
$ find .pants.d -type f | xargs grep "package com.pants.examples.distance.thriftjava"
.pants.d/gen/thrift/sessions/examples.src.thrift.com.pants.examples.precipitation.precipitation.thrift/gen-java/com/pants/examples/distance/thriftjava/Distance.java:package com.pants.examples.distance.thriftjava;
.pants.d/gen/thrift/combined/gen-java/com/pants/examples/distance/thriftjava/Distance.java:package com.pants.examples.distance.thriftjava;
.pants.d/gen/scrooge/java-sync/com/pants/examples/distance/thriftjava/Distance.java:package com.pants.examples.distance.thriftjava;
...
```

After the fix the examples run green and:
```console
$ find .pants.d -type f | xargs grep "package com.pants.examples.distance.thriftjava"
.pants.d/gen/thrift/sessions/examples.src.thrift.com.pants.examples.precipitation.precipitation.thrift/gen-java/com/pants/examples/distance/thriftjava/Distance.java:package com.pants.examples.distance.thriftjava;
.pants.d/gen/thrift/combined/gen-java/com/pants/examples/distance/thriftjava/Distance.java:package com.pants.examples.distance.thriftjava;
```

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

Bugs closed: 875

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