Restructure single precmd function as precmd_functions array

It makes more sense for precmd to be handled in the main .zshrc file and
using Zsh's array feature allows us to add multiple precmd functions.
Added global .grepoptions file
Replaced static GREP_OPTIONS variable with dynamic precmd function

This allows the value of GREP_OPTIONS to change as you ``cd`` through
the file system. If the current dir contains a .grepoptions file it will
be added.