Deal with grc

Use functions instead of aliases. This allows us to override things like
diff without breaking the zsh completion functions.