Switch branch of a submodule before update

This feature allows a project to switch the branch of submodule before
the update occurs so that they can test it with the new code of that
submodule's branch.  This is useful if need to build your main project
with 2+ different versions of the submodule, but don't want to setup
different Jenkins projects to do the different submodule builds.

Requires git-client-plugin pull request #128 to be merged before it
will compile.