Mtime-based caching: stat the directory tree once per prompt (~2ms)
and skip full activation when nothing has changed.
- Compare PYENV_VERSION, VIRTUAL_ENV, PWD; shortcut when PYENV_VERSION matches
- Walk PWD to / for .python-version (stop at first; include broken symlinks)
- Path list built once on miss, stored as array (spaces in paths)
- Global version file skipped when local version active
- version-name hooks checked at init; if present, caching disabled
- Covers bash, zsh, and fish
* Adjust tests: update Pip URLs, update expected output to match newer code
* Test library: improve failure message to eliminate the illusion of extra leading space in "actual" output
* Use Bats 1.2.0 like Pyenv
* Install greadlink for old MacOS
* Delete duplicate test
conda's environment might not have `python` executable. If the prefix
doesn't contain `python` in it, `pyenv-which` might be ran into infinite
loop if some of `which` hooks invoke `pyenv-virtualenv-prefix`.