Optimize goal changed

Make goal changed approximately O(paths + targets), instead of something much worse.

Testing Done:
Correctness: https://travis-ci.org/pantsbuild/pants/builds/43764453

Performance: tested on a megachange branch on Twitter's monorepo; previous time was on the order of hours; time with patch is 3 minutes.

Reviewed at https://rbcommons.com/s/twitter/r/1470/
Handle UTF-8 in thrift files for python

Testing Done:
Ran new tests (red/green/go)

Reviewed at https://rbcommons.com/s/twitter/r/1459/
Move GoalRunner to the bin package, together with pants_exe.py.

Gets rid of the command package.

Testing Done:
Pants builds. Dev and regular pants work.

Reviewed at https://rbcommons.com/s/twitter/r/1471/
docs: update a couple of examples that showed Pants output. old Pants output

specifically, we caught these as places that contain the string "BUILD:", and
in a refactor a while back, that string was a symptom of obsolescence.

We fixed most of those in passing, but these remain, https://github.com/pantsbuild/pants/issues/461

Testing Done:
rendered at
* http://pantsbuild.github.io/lahosken-demo/build_files.html#debugging-a-build-file
* http://pantsbuild.github.io/lahosken-demo/publish.html#does-not-provide-an-artifact

Bugs closed: 461

Reviewed at https://rbcommons.com/s/twitter/r/1401/
Cleanup after custom options bootstrapping in reflect.

The custom bootstrapping to get a symbolic buildroot for
doc generation was affecting global state and leaving a
buildroot of <buildroot> laying around for subsequent code
to pick up and unwittingly try to use.

Testing Done:
Locally this was failing before, passed after:
```console
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/tasks:reflect tests/python/pants_test/backend/python:test_builder
```

Also generated docs and confirmed the intended symbolic <buildroot> was being interpolated: http://pantsbuild.github.io/jsirois/goals_reference.html#Common

Installed python 3.2.5 after which the following failed but then passed after diff 3:
```console
$ PATH=/home/jsirois/.pyenv/versions/3.2.5/bin:$PATH pants.dev goal test tests/python/pants_test/tasks:reflect tests/python/pants_test/backend/python:test_builder
```

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

Bugs closed: 861

Reviewed at https://rbcommons.com/s/twitter/r/1468/
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/
Merge branch 'master' into help_for_minimalists
less "goal"