Config dirs for vim and zsh

Allow for additional configuration in subdirectories: `~/.vim/configs` and `~/.zsh/configs`.

Under `.vim/configs` you might find: some Swift-specific settings that you and the iOS team are trying; email-specific settings that you and other mutters are sharing; general one-off settings that you want scoped and well-named.

Under `.zsh/configs` you might find: the latest Ruby switcher that you're trying, some cool keybindings that you and your friends can't live without, or Android-specific settings that you're sharing with the other Arch users.

`.zsh/configs` supports a `pre` and `post` subdirectory, so you can have more control over the order in which things load. For example, you may want to set `chpwd` in a `post` subdirectory to prevent odd `cd` behavior while your rc files load.
Yes, if you `setopt nullglob` the loop will just not occur if the glob doesn't match.

This can be annoying though, because you really should store the existing value of the option and restore it after you're done.