Remove base_test module and fix up missing deps
Bust up some of the dependency hairball

* Remove some unused imports
* Separate reporting.report
* Move cache_manager and task_error into base/
* All circular dependencies are removed from base/

Testing Done:
ci.sh passes

Reviewed at https://rbcommons.com/s/twitter/r/360/
doc, docstring: Jake Donham's clarification: where to see test output

https://rbcommons.com/s/twitter/r/366/
Fix setup.py install_requires post targets refactor.

With the target refactor PythonRequirementLibrary is now used rather than
PythonRequirement when generating setup.py install_requires. At present this
field is not populated leading to missing requirements and unisntallable
pants-generated sdist's.

Testing Done:
./build-support/bin/ci.sh

Confirmed setup.py install_requires is now populated.

Reviewed at https://rbcommons.com/s/twitter/r/368/
Make sure zinc analysis is always sorted.

Note that we still need to check if this is a performance issue.
If so, we can sort only the sections that must be sorted for correctness
(namely, compile options). But then we have to verify that Zinc is OK
with sections being unsorted. It should be, but you never know.

My attempt to replace the defaultdict(lists) with OrderedDicts had
noticeable performance impact, so that's probably not the way to go.

Ultimately we need to benchmark this.

TODO: modify zinc to be more careful about how it compares
compile options between analysis files.
Fix restful cache error message to use correct status code variable.
Add url to run tracker reporting error msg to simplify bug reporting.

Reviewed at https://rbcommons.com/s/twitter/r/359/
Fix path/paths goals for refactor

Testing Done:
CI passes.

Reviewed at https://rbcommons.com/s/twitter/r/371/
docs: publish troubleshooting guide += Did you forget "provides"?

Based on a true story.

Reviewed at https://rbcommons.com/s/twitter/r/352/
docs: capture some local-publish-test info from a mail thread

https://rbcommons.com/s/twitter/r/336
An example annotation processor

Testing Done:
Ran the target:

PANTS_DEV=1 ./pants goal bundle src/java/com/pants/examples/annotation/main

got the output in examples.txt
{
  {'type' : 'Main', 'value': 'Annotation Processing Example'},
}

Bugs closed: 131

Reviewed at https://rbcommons.com/s/twitter/r/372/
Fix non-relativized entry point for python_binary.

Also make sure that name and address are set on
TargetProxy objects before potentially raising TargetDefinitionException.

Testing Done:
CI passes

Reviewed at https://rbcommons.com/s/twitter/r/373/
Chop up the hairball a bit more: move some JVM specific tasks into pants/jvm/

The following classes now live in pants.jvm:

* IvyTaskMixin, for Tasks that call ivy_resolve
* JvmToolTaskMixin, for Tasks that bootstrap JVM tools
* NailgunTask
* IvyResolve
* JvmToolBootstrapper

Removing Task.ivy_resolve and the methods provided by JvmToolTaskMixin
cuts a large thread in the hairball--Task is no longer explicitly
dependent upon JVM specific machinery.

In a future update, I'll move the other explicitly JVM Task subclasses from pants.tasks to pants.jvm, or maybe pants.jvm.tasks.

Testing Done:
ci.sh passes

Reviewed at https://rbcommons.com/s/twitter/r/363/
doc: wait to mention 'rbt' until it's clear you don't need to easy_install it

Reviewed at https://rbcommons.com/s/twitter/r/367/
docs: tiny typo in 'first_concepts.rst'

Testing Done:
ran the ci.sh. Output: [== CI SUCCESS ==]

Reiewed at https://rbcommons.com/s/twitter/r/376/
Add missing __init__.py
Fixup pants.jvm package.

The package was missing an __init__.py.
Additionally pants.jvm.jvm_tool_task_mixin had under-reported deps.

Testing Done:
Was:
$ PANTS_DEV=1 ./pants
*** Running pants in dev mode from /home/jsirois/dev/3rdparty/pantsbuild-pants/src/python/pants/bin/pants_exe.py ***
Traceback (most recent call last):
  File "/home/jsirois/dev/3rdparty/pantsbuild-pants/src/python/pants/bin/pants_exe.py", line 21, in <module>
    from pants.commands.register import register_commands
  File "/home/jsirois/dev/3rdparty/pantsbuild-pants/src/python/pants/commands/register.py", line 8, in <module>
    from pants.commands.goal import Goal
  File "/home/jsirois/dev/3rdparty/pantsbuild-pants/src/python/pants/commands/goal.py", line 31, in <module>
    from pants.goal import Context, GoalError, Phase, register
  File "/home/jsirois/dev/3rdparty/pantsbuild-pants/src/python/pants/goal/register.py", line 11, in <module>
    from pants.tasks.antlr_gen import AntlrGen
  File "/home/jsirois/dev/3rdparty/pantsbuild-pants/src/python/pants/tasks/antlr_gen.py", line 12, in <module>
    from pants.jvm.jvm_tool_task_mixin import JvmToolTaskMixin
ImportError: No module named jvm.jvm_tool_task_mixin

No longer fails fast:
$ PANTS_DEV=1 ./pants
*** Running pants in dev mode from /home/jsirois/dev/3rdparty/pantsbuild-pants/src/python/pants/bin/pants_exe.py ***
Pants 0.1.0

Usage:
  ./pants goal [option ...] [goal ...] [target...]  Attempt the specified goals.
  ./pants goal help                                 Get help.
  ./pants goal help [goal]                          Get help for the specified goal.
  ./pants goal goals                                List all installed goals.

  [target] accepts two special forms:
    dir:  to include all targets in the specified directory.
    dir:: to include all targets found recursively under the directory.

Friendly docs:
  http://pantsbuild.github.io/

Global options:
  -h, --help              Show this help message.
  -t CONN_TIMEOUT, --timeout=CONN_TIMEOUT
                          Number of seconds to wait for http connections.
  -x, --time              Times goal phases and outputs a report.
  -e, --explain           Explain the execution of goals.
  -k, --kill-nailguns     Kill nailguns before exiting
  -d LOGDIR, --logdir=LOGDIR
                          [none] Write logs to files under this directory.
  -l LOG_LEVEL, --level=LOG_LEVEL
                          [info] Set the logging level [debug, info, warn].
  -q, --quiet             Squelches all console output apart from errors.
  --no-colors             Do not colorize log messages.
  --read-from-artifact-cache, --no-read-from-artifact-cache
                          Read build artifacts from cache, if available.
  --write-to-artifact-cache, --no-write-to-artifact-cache

Bugs closed: 135

Reviewed at https://rbcommons.com/s/twitter/r/378/
Remove an unused (and broken) method.

Also rename a function.

This makes grepping for sources_relative_to_source_root less noisy.
RunTracker: Allow users to set the timeout on reporting starts, defailt to 2 seconds

Reviewed at https://rbcommons.com/s/twitter/r/377/
Remove a dep of a target on itself.
doc: fix sphinx warning for option-less Goals

Four Goals don't have CLI options. Yay, elegance. Boo, the
CLI-option-automagic-docs template I just added assumed everything
had options; Sphinx warns for those four Goals.

So... don't assume that. Fix the warnings.

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