Adding .modify() query function

This function takes a simple javascript object and updates every record
the query matched with the given object (and saves back to the DB). It
does this without changing the way the results are returned (and as
mentioned, only modifies matched results).

.modify() *must* come directly before execute, and can only be used
after an all(), filter(), desc(), distinct(), only(), bound(),
upperBound(), or lowerBound().

If the value of the given object to modify is a function, it will be
called with one argument: the *original* record pulled from the query.
This allows to do some nice things, like increment a value atomically.

Usage:

  // pull out users that have changed, and reset the change status
  mydb.users.query('changed')
    .only(true)
	.modify({changed: false})
	.execute()
	.done(...)

  // pull out profiles, and update their view count
  mydb.profiles.query('name')
    .lowerBound('marcy')
	.modify({views: function(profile) { return profile.views + 1; }})
	.execute()
	.done(...)