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/