Enable caching in the Travis CI build.

The specs here:
  http://docs.travis-ci.com/user/caching

This turns on caching for ~/.pants.d, ~/.ivy2
and the current pants requirements bootstraped in
build-support.  To make virtualenv caching work, updates
the virtualenv bootstrap script to use a stable directory name
across virtualenv versions.

Testing Done:
CI went green here: https://travis-ci.org/pantsbuild/pants/builds/44760074

Bugs closed: 887

Reviewed at https://rbcommons.com/s/twitter/r/1537/
Improve CI caching.

Add an option to skip pants bootstrap pre-clean
allowing cached build-support/pants_dev_deps.venv
to survive and be utilized.

I missed this cleaning going on in ci.sh when 1st enabling caching in https://rbcommons.com/s/twitter/r/1537/
This change actually uses the build-support/pants_dev_deps.venv now to avoid pip installing pants deps unless they change as evidenced by logs.

Testing Done:
CI went green here: https://travis-ci.org/pantsbuild/pants/builds/44795443

Bugs closed: 888

Reviewed at https://rbcommons.com/s/twitter/r/1538/
Make zinc relative its -classpath argument too.  (Again, because mesos
creates long-ass paths).

Testing Done:
Ran new tests.  Also https://travis-ci.org/pantsbuild/pants/builds/44629688

Reviewed at https://rbcommons.com/s/twitter/r/1528/
doc: you don't need Ultimate Edition IJ for the python plugin

This came up at Twitter build stand-up ~a week ago

Bugs closed: 848

Reviewed at https://rbcommons.com/s/twitter/r/1490/
Refactor WhatChanged into base class, use LazySoruceMapper

Switch to using LazySourceMapper to map changed files to targets.
LazySourceMapper is designed to map sources to targets without
loading any more of the BUILD graph than is required, which is
ideal for a what-changed use-case.

Refactoring the what-changed calculation into base class should make
it easier to support other tasks that require the set of changed
targets (or files). The WhatChanged task itself is now just a small
stub on top of it.

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

./pants goal test tests/python/pants_test/tasks:what_changed

Bugs closed: 884

Reviewed at https://rbcommons.com/s/twitter/r/1534/
slide tweaks based on class feedback.

test probably lives in tests. newline. TDesai points out: 'foo' is not a great example. A slide for showing addresses in a BUILD file.

Testing Done:
viewed slides on laptop in not-so-many-pixels mode. slides fit onscreen, yay

Reviewed at https://rbcommons.com/s/twitter/r/1532/
Remove unused imports from what-changed.

Testing Done:
/pants test tests/python/pants_test/tasks:what_changed

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

Bugs closed: 890

Reviewed at https://rbcommons.com/s/twitter/r/1542/
builddict: add a flag to omit "internal" things

An option for goal builddict, the goal which generates http://pantsbuild.github.io/goals_reference.html . This option is a list of regexps; goals whose implementations (e.g., 'pants.backend.jvm.tasks.benchmark_run.BenchmarkRun') match any of these regexps get omitted from the goals_reference.

Why? To prevent 'sitegen' from showing up on http://pantsbuild.github.io/goals_reference.html . The 'sitegen' goal is defined in internal_backend, which we don't ship with Pants.

Bugs closed: 777

Reviewed at https://rbcommons.com/s/twitter/r/1546/
Replace exclusives_groups with a compile_classpath product

As discussed [on the mailing list](https://groups.google.com/d/topic/pants-devel/3cBrJ_rZfCI/discussion).

- Replace all usage of exclusives and ExclusivesMapping with an OrderedSet containing the compile_classpath
- Don't reverse resources targets while appending them to the classpath in prepare_resources.py

Testing Done:
PANTS_DEV=1 ./pants test tests/python::

Reviewed at https://rbcommons.com/s/twitter/r/1539/
doc: publish page shows provides= example

We have some lovely sample code for provides=; but folks overlook it. So point folks
at it, sheesh.

setup_repo.md: replace copy-paste sample code with an include, lest it drift out of date without us noticing

Testing Done:
see it rendered at
http://pantsbuild.github.io/lahosken-demo/publish.html
http://pantsbuild.github.io/lahosken-demo/setup_repo.html#setup_publish

Bugs closed: 473

Reviewed at https://rbcommons.com/s/twitter/r/1549/
start of a Pants-with-scala page

+ points out sample code

+ java_sources, circular java-scala deps

+ mentions 'goal repl'

Testing Done:
rendered at http://pantsbuild.github.io/lahosken-demo/scala.html

Bugs closed: 26

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