Create abstract class for all scc commands acting on git repos

- Move main repository intialization (incl. submodule registry, reset and status reading), add_new_commit_args() and push() to this new abstract class
- Use GitRepository rmerge() method for the update-submodules command. Note the updated boolean has been dropped during this change since the logic checking local changes has been moved to rmerge(). This means --push can now be called even if the SHA1 is unchanged.
Merge pull request #3 from sbesson/auto-submods

Fix `scc update-submodules`
merge master -D org -I include -E conflict -E needs-fixes -E broken: PR 10 (Convert bash scripts to Python)
merge master -D org -I include -E conflict -E needs-fixes -E broken: PR 47 (Auto submod updating)
merge master -D org -I include -E conflict -E needs-fixes -E broken: PR 52 (Filter improvement)
merge master -D org -I include -E conflict -E needs-fixes -E broken

Repository: openmicroscopy/snoopycrimecop
Already up-to-date.
Merged PRs:
  # PR 10 sbesson 'Convert bash scripts to Python'
  # PR 47 joshmoore 'Auto submod updating'
  # PR 52 sbesson 'Filter improvement'

Generated by SCC-merge#134 (http://hudson.openmicroscopy.org.uk/job/SCC-merge/134/)