Feature/user object or

Resolves https://github.com/FetLife/rollout/issues/38

- This is BC-compatible
- But you can also use id's rather than some type of `User` object if you want:
```ruby
rollout = Rollout.new Redis.new
rollout.define_group(:fives_only) { |user_id| user_id == 5 }
rollout.activate_group(:chat, :fivesonly)
rollout.active?(:chat, 5) 
#-> true
```

Only issue with that is that everybody using this library now will have `{ |user| user.id == 5 }` type lambdas already defined, so if we default to passing the id, it would break BC... 

We could maybe do the opposite, and ensure lambdas always receive a stub object like `OpenStruct.new(id: object.id)` if the lambda ends up being called with a non-Fixnum ??