Merge pull request #725 from ZyX-I/fix-fname-special-chars

Handle non-printable characters properly
Support zsh “modes” (different keymaps like when using vicmd/viins pair)

Fixes #508
Some fixes for powerline.zsh:

- Replace main and other linked modes with modes they link to
- Add proper keymap initialization

Ref #508
Omit any non-vi* mode by default
fixup! Some fixes
Add tests