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