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.
Switch from Hashtable to HashMap

Per Mark Waite's suggestion, switching from Hashtable to HashMap so that
we don't incur the synchronization costs inherent in Hashtable, since we
don't need it.
Merge pull request #128 from dbroady1/specificSubmoduleBranch

Switch branch of a submodule before update