Rework artifact cache config.

Now it's all in pants.ini and the confusing flags are deprecated.

Auditors: pl
Implement rebase more carefully.

Simply deleting lines referencing java home was obviously broken,
as it didn't modify the "items: " line appropriately...

Also fix a bug related to artifact caching of analysis file.

Auditors: pl
Enable the two basic artifact cache flags as overrides.

Auditors: pl
Fix bug in read_write_artifact_cache.

Auditors: pl
Conform to the latest sbt analysis format.
Bugfixes around new sbt analysis format.
Symlink all jars, for path uniformity.

Also simplify ivy stuff a little.

Auditors: pl
Fix workunit parent assignment issue.

Previously, even when passing in an explicit parent,
the workunit would get incorrectly set as the current workunit
for the calling thread.

Also make sure symlinking of ivy resolve jars happens
after we attempt to cache a classpath referring to those
symlinks.

Auditors: pl
Fix spurious missing jardep messages.

Also map jar symlinks when interpreting the ivy report.

Auditors: pl
Ensure jar symlinking even when reading from artifact cache.

Also gets rid of a couple of superfluous members of IvyUtils.

Auditors: pl
Fix spurious missing jar deps messages.

Happens on linux when the ivy cache is under
a symlink.

Auditors: pl
Change a console message.
Upgrade scala to 2.9.3, temporarily add fs nexus
Remove all uses of curdir/chdir/pushd from pants

Summary:
This slightly changes the semantics of build files.  In places where
you'd expect (source_root, globs, rglobs), paths are relative to the
directory that the BUILD file lives in.  However, the BUILD file itself
is executed with its curdir as whatever the root of the build tree is.
get_buildroot() and ROOT_DIR are available, though, so any information
needed within a BUILD file about its path is still available.

Reviewers: benjy

Differential Revision: http://phabricator.prod.foursquare.com/D5210

Auditors: benjy
Refactor BUILD file parsing

* Shuffle around some modules to reduce circular imports
* Move is_jvm, is_python, etc. from free functions to properties of
Target
* Reduce the number of imports in __init__ files

Auditors: benjy

Conflicts:
	src/python/twitter/pants/tasks/task.py
Make pants server choose a free port.

Prevents port collisions when multiple pants servers run
in multiple workspaces on the same host.

You can still specify a port explicitly with a flag, but
by default a free one will be chosen.

Auditors: pl
Misc task cleanup.

- Make some tasks less chatty by making them ConsoleTasks.
- Get rid of a local artifact wiping task. The concept of wiping
  just the local artifact cache is not coherent (what about the
  remote cache?) so you should only do that if you know what you're
  doing, in which case you should know how to do it...
- Add some safety around cleaning operations.

Auditors: pl
Get rid of superfluous imports.
Make ./pants server/killserver less chatty.

Also fix a minor bug.

Auditors: pl
Refactor server pidfile stuff a bit.

To allow auto-opening a browser tab to the report
when you run a server.

Auditors: pl