Make SubmoduleUpdateCommand an interface

Apparently, updating to git-plugin 2.1.1 from 2.0.4 causes the SubmoduleUpdate command stuff to not work with the following:

Resetting working tree
FATAL: org.jenkinsci.plugins.gitclient.SubmoduleUpdateCommand is not an interface
java.lang.IllegalArgumentException: org.jenkinsci.plugins.gitclient.SubmoduleUpdateCommand is not an interface
	at java.lang.reflect.Proxy.getProxyClass(Proxy.java:362)
	at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
	at org.jenkinsci.plugins.gitclient.RemoteGitImpl.command(RemoteGitImpl.java:112)
	at org.jenkinsci.plugins.gitclient.RemoteGitImpl.submoduleUpdate(RemoteGitImpl.java:442)
	at hudson.plugins.git.extensions.impl.SubmoduleOption.onCheckoutCompleted(SubmoduleOption.java:95)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:908)
	at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:671)
	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:580)
	at hudson.model.Run.execute(Run.java:1670)
	at hudson.matrix.MatrixBuild.run(MatrixBuild.java:304)
	at hudson.model.ResourceController.execute(ResourceController.java:88)
	at hudson.model.Executor.run(Executor.java:231)
	at hudson.model.OneOffExecutor.run(OneOffExecutor.java:43)

This commit makes the SubmoduleUpdateCommand an interface instead of an abstract class so that it will work correctly in the RemoteGitImpl mode.  NOTE -- Because of this change, a rebuild of git-plugin is necessary.