Enable relocation of Prezto

Out-of-the-box Prezto requires all files to be located in ~/.zprezto or
$ZDOTDIR/.zprezto.

To make it possible to initialise Prezto when it's elsewhere I've added
support overriding the location of Prezto via the ZPREZTO_DIR
environment variable.
Modify ZSH initialisation

- Add ~/.dotfiles/bin to path
- Source an env.zsh file in priv
- Load Prezto from my custom location (~/.dotfiles/zsh/init.zsh)
- Export paths related to ZSH initialisation
Add my utility functions
Add my custom prompt
Add my modules