Instead of using hand crafted parsing to get the current git state, we
use the existing vcs_info module, augmented by a few hooks to preserve
previous prompt functionality.
The prompt now also display the vi mode of ZLE on the left of the
username : [I] for insert mode, [N] for normal mode.
A lot of the inspiration for this refactor came from
https://github.com/frioux/dotfiles
For example the tweaks to the keybindings and completion.