Add 'new' parameter to findAndModify

The main object of this pull request is to lift the `new` parameter `findAndModify` to the Haskell function interface. I currently need it to retrieve the original document instead of the updated document.

Note that this changes the library API, so if you follow the [PVP](http://www.haskell.org/haskellwiki/Package_versioning_policy), this update alone would require a major version number bump.