Relocate the Pants python interpreter cache under the buildroot. (#5590)
Relocate the Pants python interpreter cache under the buildroot. (#5590)

* Relocate the Pants python interpreter cache under the buildroot.

There are several upstream bugs in play.

* The python interpreter and
requirements cache are treated as global caches by upstream -
Pants itself caches this in the home/.cache.

But in reality, that is a symlink back to the interpreter and so
bound to fail if you run Pants from a virtualenv, or at least,
if you are like us and run out of a local virtualenv from
variious system paths.

* Pants also uses a workdir symlink to point to the resolved cache,
so if you delete the virtualenv for some reason or move it, you
can get bugs way later in the stack complaining about setuptools,
etc. It calls get_intepreter on the cached interpreter path so it should at
least check to see if that path exists before putting the product
into the build_graph

* The interpreter now has many Pants options but the fingerprint strategy
only changes off of the compatability string. I can see why they did that,
since changes in the other options  very well could result in a completely
identical interpreter to before. But this breaks all the invalidation
expectations - the cached path stays the same if you change the cache_path
and removing a search_path from the options will still use the
original path until you finally clean or invalidate the pyprep task
some other way... It may be distasteful, but the search_path and cache_path
both have to invalidate or else it will continue to break people who deploy
Pants in ways other than pex files.

* Remove override of pexrc and move cachedir

(sapling split of 447199ad4c1042100ee071ecfbe5e1a810e8489a)
foursquare/fsqio,foursquare/fsqio,foursquare/fsqio,foursquare/fsqio,foursquare/fsqio