Use add-zsh-hook

_direnv_hook is appended to local variable when called from a function.

```bash
# before
% _my_hooks() { eval "$(direnv hook zsh)"; }; _my_hooks
% echo $precmd_functions

```
```bash
# after
% _my_hooks() { eval "$(direnv hook zsh)"; }; _my_hooks
% echo $precmd_functions
_direnv_hook
```