Move the options out of the prompt

So users don't have to modify the prompt to be able to change the options.
Add an example
Use zsh hooks instead of overriding preexec and precmd
Closure over the local variables by wrapping everything in a anonymous function

Also namespace all the functions as they will always be global