Add support for non-profile bootstrapping

Refactor ivy_util and ivy_resolve (move anything that needs to shell out
to ivy into ivy_util, let ivy_resolve call out to ivy_util when
necessary).  This only affected one small call into IvyUtils in
provides.py.

Have ivy_resolve use the new bootstrapping code for its xalan dep

Auditors: benjy
Move antlr over to use bootstrap_classpath

Auditors: benjy
Move JavaCompile over to bootstrap_classpath

Auditors: benjy
Move ZincUtils over to bootstrap_classpath

Auditors: benjy
Move NailgunTask to use bootstrap_classpath

Also provide a bootstrap_classpath method on NailgunTask that uses
nailguns to invoke ivy.  This should only be used by subclasses, since
bootstrapping nailguns itself with nailguns would not work.

Auditors: benjy
Move checkstyle over to use bootstrap_classpath

Auditors: benjy
Move junit to bootstrap_classpath

Auditors: benjy
Move BenchmarkRun to bootstrap_classpath

Auditors: benjy
Add SpecsRun to bootstrap_classpath

Auditor: benjy
Small style changes.  Upgrade checkstyle to 5.6

Auditors: benjy