Refactor GitRepository reset() method

The reset() method is now called outside the __init__() method and uses
`git reset --hard HEAD` on the top repository only. All submodules pointers
are updated using the `git submodule update --recursive`.

This change allows `scc merge -Dnone master --reset` to update the submodules
Add has_local_changes() method and remove "--allow-empty" option
Merge pull request #2 from sbesson/auto-submods

Allow to use `scc merge` for submodule update
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#133 (http://hudson.openmicroscopy.org.uk/job/SCC-merge/133/)