Enhanced set! method API

Removed some code and enabled new API for `set!` method.

Now it's actually possible to do things like this:

```ruby
@users.group_by(&:role) do |role, users|
  json.set! role, users, :id, :name
end

# => { admins: [ { id: 1, name: 'DHH' } ], managers: [ { id: 2, name: 'John Doe' }, ...]}
```

Also, 100% compatible with old APIs.