Vim: Update submodules to latest upstream commits
Vim: fixed update.sh bug which prevented updates

This bug was preventing the submodules update.sh was supposed to be
updating from actually checking out the latest commits; they would be
locked to the current commit.

This was caused because, while update.sh was correctly pulling in the
latest commits from each submodule, it would then do a `git submodule
update`, which would then cheeckout the commit of the submodule
currently recorded in the containing repo.

update.sh was also updated to recompile YCM only if we pulled new
commits for it. However, it should be noted that if you've pulled newer
commits than the containing repo has recorded, and did not commit them,
then update.sh will first checkout the older, recorded commit, then
pull the newer commits, thus making it think YCM has been updated when
it may not be any different than the version on disk before update.sh
was called.