Port operations.UserMergeToRef to Go
This MR ports operations.UserMergeToRef from Ruby to Go. It first creates two new APIs for our repository abstraction to resolve refish'es and update reference to make the actual port nicer to read and to further extend that new interface.
Implements #3068 (closed)