Refactor inc to support multi-increment.

We can now pass multiple increments to execute in a single db call.

Ex: document.inc(score: 10, place: -1, lives: -10)
Refactor pop to use multiple operations:

Ex: document.pop(names: 1, aliases: -1)
Refactor atomic bit to take multiple ops:

Ex: document.bit(age: { and: 13 }, score: { or: 13 })
Refactor pull to handle multi-ops:

Ex: document.pull(names: "James", aliases: "007")
Beefing up settable specs
Refactor pull_all to handle multi-ops:

Ex: document.pull_all(names: [ "James", "Bond" ], aliases: [ "007" ])
Refactoring common behaviour in atomic ops
Finish off the pull_all specs
Refactor push to take multiple operations:

Ex: document.push(aliases: "Bond", names: [ "James", "Jim" ])

Document#push_all has been removed since #push can now handle both cases
and the $pushAll operation was deprecated in MongoDB 2.4.0