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 wanted to talk to you about this. In the Git Town workflow pushes happen automatically through "git ship". This would cover an edge case where people manually commit things into master, and then try to "git sync" from another feature branch. Running a "git sync" from the master branch works as expected. 

I'm actually okay with the way it is, it just stood out to me and I wanted to hear your take on it.