git2go: Pass merge arguments via JSON
In order to invoke the gitaly-git2go merge subcommand, one currently has to pass each parameter as a separate flag. This is quite easy to get wrong and makes refactoring of the interface much harder to accomplish.
This commit refactors the code to instead pass parameters via a
serialized JSON structure. The new internal/git2go
package contains
all logic required to serialize or deserialize merge parameters as well
as running the actual command.