Update experimental mongoid branch to contain latest commits from master

I have my branch rebased in order to contain all commits from master, not really sure how this will work as a pull request since it is obviously not going to merge cleanly, however trying it anyway.