This adds `interactive` option to uncommit . Part of this code has been
imported from `evolve ` from commit hash `da2fdaa3d97c`. The basic
functionality of the code lies in `_interactiveuncommit()`. It first uncommits
everything then performs action similar to interactive amend .
The current implementation is not perfect and might result in `Hunk Failed.`
at some point.