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.
My vote would be if you have local commits to the main branch, any commits that "sync" the main branch stop and tell you to deal with it. (`git sync` on the main branch being the only exception)