Multi-user ability

@charlierudolph @daviscabral This change introduces merging in updates from the main branch into feature branches instead of rebasing them, thereby removing the need to do force pushes at all.

I apologize for the sizable PR. Building the scenario for multi-user commits to a feature branch required a number of improved testing facilities, which in return surfaced some existing bugs that I have fixed along the way as well to make the specs pass. While it is pretty hard to extract these changes into separate PRs due to their intertwined nature and the fact that they have been built together as part of this feature, the good news is that we can now test commit locations more precisely with at the same time more concise and simpler syntax. We also have the Rails extensions to Ruby available in case we need them somewhere else.
I pretty much convert one commit_data entry with location "local and remote" to one with location "local" and another one with location "remote". I need to clone the commit_data entry so that I have another identical one, where I can change the :location attribute.