new `hg fixup` command
This new command can be used to amend changes to a specific revision.
Implementation wise what it basically does is:
- commit the working directory changes
- relocate the new commit onto the target commit
- fold them into one.
After the run, the working directory parent will be the obsoleted changeset created in step(1) and descendants of the target will get orphan instability.