operations: Return correct error code when merge fails
When the UserMergeToRef fails because of a conflict, then it's currently not using any gRPC error code but instead directly returns an internal error, where the Ruby implementation returned a PreconditionFailed error instead.
Fix this discrepancy by also returning a FailedPrecondition error. Adjust a test to pin down this error case.