uncommit: add an interactive option to uncommit
This patchs adds an interactive flag to uncommit command which lets you choose
hunks interactively. The implementation is as follows:
1) prompt user to select hunks to uncommit interactively
2) make a temporary commit of the hunks user selected
3) calculate the diff of temporary commit and changeset to be uncommitted
4) commit that diff which results in the changeset which should be there after
uncommiting
5) create obsmarkers as required, phases and bookmarks handling
6) reroute the working directory