switch git submodule versions correctly

switch git submodule versions correctly when switching to a revision also switch to the corresponding submodule version

also, add a "test" for the submodule version
test