Adds hooks to more of the create-row-functions

Runs pre-update, post-update, and post-load hooks for `find-and-modify!`, `set-fields!`, `unset-fields!`, `push!`, `add-to-set!`, and `pull!`.

I had to slightly modify the pre-hooks implementation.

pre-hooks previously acted on all of the args to the congomongo functions. They were only used on create!, replace!, and save!, so this wasn't a problem. However, when they were added to functions of multiple args like `push!`, they would map the hooks over the field and value. 

Now, pre-hooks only operate on the "row" (or the "where" in the case of find-and-modify).