Rewrite CriteriaHash#merge to be less gnarly. Add $or merging.

This add collapsing of multiple $ors or $ors + $ands containing $ors into a compound $and statement.

* Closes jnunemaker/mongomapper#298
* Closes jnunemaker/mongomapper#499