Only execute each function if it actually exists.

- Before we call precmd or preexec on a function. Check that the function
  exists and can actually be called. If it doesn't exist, simply skip it as
  described in Zsh's spec for hook functions.