Duplicate arguments in Query::Update to persist primary key

Query::Update deletes the primary key for `def build_params`

```ruby
def build_params(args)
  @params = {klass.primary_key => args.delete(klass.primary_key), klass.resource_name => args}
end
```
Instead we can duplicate the args before deleting

```ruby
def build_params(args)
  args = args.dup
  @params = {klass.primary_key => args.delete(klass.primary_key), klass.resource_name => args}
end
```
and keep the id when resource.update_attributes completes.