Update to latest per-directory-history

See [https://github.com/jimhester/per-directory-history]
Update to latest per-directory-history
`fc -l 1` instead of `history` in zsh_stats #2501

$HIST_STAMP breaks zsh_stats. see #2501
Makes history-substring-search use term specific up and down buttons. Fixes #2089.
history-substring-search: bindkey now checks if terminfo is available first.
Added git mode support for merging, rebasing, and bisecting

<B> Designates Bisecting
>M< Designates Merging
>R> Designates Rebasing
Correct redirection of output from 'hash'

The intention of the redirection to /dev/null is to hide the output
'hash: no such command: git' since we rely on the exit status.

However, the output goes to stderr, so it's stderr that needs to be
redirected. For completeness, we redirect both stderr and stdout using
'2>&1'.

Example:

  [~]$ hash git > /dev/null
  [~]$ PATH=''
  [~]$ hash git > /dev/null
  hash: no such command: git
  [~]$ hash git > /dev/null 2>&1
  [~]$
Spelling correction in itunes control function.

Spelling correction in itunes control function.
Use cache folder inside $ZSH, delete with unaliased rm
set exclude-dir or exclude grep flags only if available
Fix for Python3

In Python3 without universal_newlines set to True
output from Popen was byte-encoded.
Fix `docker rmi` tab completion

This is exactly what happens on tab completion for docker rmi. This commit
fixes that.

```sh
$ docker rmi <hit TAB>
_arguments:comparguments:312: invalid argument: __docker_images
_arguments:comparguments:312: invalid argument: __docker_images
_arguments:comparguments:312: invalid argument: __docker_images
```
Add a `use_ghc` function to change the ghc that's in PATH