Fix inline edits working on root commits

The initial commit of a repository should be mutable through
inline edits. Fix up the inline edit code to finish removing
all assumptions about "edit is commit on top of patch set".
This allows the code to just amend the commit and safely work
with 0 parents.

When restoring a path from the initial commit, treat that
as a file deletion. The file does not exist. Undoing create
would be deleting it.

When restoring a path edited during a merge commit, revert
to the version from parent 0. This is an "ours" type of merge
on that path, and is likely what the caller wants.

When restoring a path that doesn't exist in the ancestor,
the delete the path. This is very similar to the restore on
an initial commit. The path didn't exist before this change.

Change-Id: Ibab826f48575c0fdff09e4d3d0939e1f01c3baac
3 files changed