remove the ivy_home property from context.

Review Request #1592 — Created Jan. 10, 2015 and submitted

jsirois, patricklaw

It's now a product, populated by IvyResolve, for downstream tasks that
happen to need to know about the ivy cache dir for various reasons.

This has several benefits:

- Context is a pants-wide concept, and ivy is a jvm-backend-specific concept.
There's no reason for it to be privileged.

- We were previously inferring the ivy cache dir in two difference places -
context and bootstrapper. This caused real bugs when the two differed
(which is how I came to make this change in the first place).

- We were using a mix of global ivy cache dir references and class members.
Now all references are in Ivy objects or Bootstrapper objects, so it's
easier to reason about where they came from.

- This allows IvyResolve to be the sole decider of "where is the ivy cache", with
downstream tasks letting it tell them where it cached jar, via products.

- We had inconsistent terminology: "ivy_home" vs "ivy_cache_dir". Now everything
uses the latter term.

- I have never regretted putting something in products. It should be products all
the way down...

CI passes:

  2. Its probably worth a comment that the value uses '/_IVY_HOME...' to maintain backwards compatibility with existing caches - I think thats why you didn't change this at any rate.

    1. Yep, that's exactly why. Comment added.

Review request changed

Status: Closed (submitted)

Change Summary:

Submitted as fa244e6bb407dece00f76d5605e3e8a88c64c630.