Refactor the 'git-subup' (submodule update) script to only
conditionally pull changes from each submodule's origin remote.
"git subup" will just ensure all submodules are checked-out.
"git subup pull" will additionally do a pull on each submodule to
look for updates.
* Use '--recursive' flag for update/sync/foreach subcommands to
update any child submodules of first-level submodules.
* Conditionalize 'git pull' handling only if $1 == "pull".
* Don't assume that "remotes/origin/HEAD" is a valid ref; not all
repo's will have an "origin/HEAD" ref. Instead, just force-update
local "master" branch based on the current checked-out rev, so
that when 'git submodule update --checkout' creates a detached
HEAD we'll update our local 'master' branch to jive with HEAD so
that any later 'git pull' will show all new revisions compared to
the previous HEAD.