Update push() to support $addToSet

The `allow_duplicates` argument is being added to `Model.push()`. It causes `push()` to use the `$addToSet` operator instead of `$push`. Through the use of the `$each` operator, `$addToSet` will also be used instead of `$pushAll`.

Closes #12