Return structured errors for conflicts in UserMergeBranch
When conflicts occur in UserMergeBranch callers cannot easily tell that error apart from other errors, but have to resort to parsing error messages or guessing based on the error code. Furthermore, we do not provide any information to callers about which files have conflicted, and thus Rails cannot act on that information either.
We should extend the UserMergeBranchError to also handle conflicts and return structured information about what has conflicted.
Edited by Patrick Steinhardt