Support API-only mode that avoids all local git checkout operations

Our use-case is quite simplistic. Basically, we only use Marge Bot as a "Rebase" + "Merge" web UI button monkey. What this means is that there is no need for our Marge to ever do any local git operations, it can all be handled through the GitLab API. We enforce fast-forward merging and a green pipeline after every rebase so having Marge enqueue the MRs to be merged saves a lot of developer time.

We forked the original Marge Bot some time before this new organization and fork was set up, and we're still using our own fork. To the best of our knowledge, this is the only remaining delta between this repository and our fork, and we would love to move over to the upstream Marge Bot.

I think the original patch came from https://github.com/csymeonides-mf/marge-bot/commit/eb17149a6d163b24e5b7b86272b8a3a3f9ab84ad. We incorporated this API-only mode in https://github.com/hiboxsystems/marge-bot/pull/12 and it has worked out great for us the past 2+ years.

After starting to use it, we noticed a big improvement in Marge reliability. With the local checkouts there were all sorts of issues; spurious checkout failures, eating lots of extra disk space, and probably other types of failure I have since forgotten. It has worked so well that Marge has basically been in maintenance mode the past 2 years 😄

WDYT @nejc @benjamb @dhxx and others, is this something that you think would be useful in upstream Marge Bot too? If yes, I'd be happy to try to get it upstreamed.