Change both bash and zsh to make sure we have our submodules

Add a "pre" subdir to .zsh where scripts run before oh-my-zsh is
initialized. Add a script that updates all the submodules if oh-my-zsh
is not properly cloned.

If zsh is started from bash, the check is effectively done twice, but
the bash script also deals with the case where zsh is not available.

Rename dotfiles-init to update-subrepos, make it run `git pull` on repos
that are around. Also refactor it to reduce code duplication.