fix traceback of extdiff after a merge
- files that comes from a different branch are marked as modified
but aren't present in the original manifest
- add a testcase for extdiff and for regular diff
adding baserestoring status: hg patches saved state