MercurialRepositoryService: new Push method
This would be the backing method for heptapod#307 (closed)
We cannot reuse upstream RemoteService.UpdateRemoteMirror
because of the following differences:
- pushes in Mercurial can mutate the local repository because of phases propagation
- we'd like to have an option to push only public changesets