Add upsert support to `Model.save`

This adds a second (optional) parameter to `Model.save`, which allows
you to specify how conflicts should be handled when inserting documents.

When `options.conflict` is set to either `update` or `replace`, documents
will be updated or replaced when inserted if they already exist in the
database. If the value is set to anything else it will revert to `error`.

The default conflict resolution is `error`, which is in line with how it
worked before since that's what RethinkDB defaults to.