using dedicated cache context for garner binding

cc @fancyremarker What do you think about something like this?  This gives us a specific place to define cache keys based off the user's current organization + session.  This does not completely solve the problem as you can now just as easily have a stale cache, but this will at least separate caches by `current_organization`.  Ideally we need a way to invalidate caches or to destroy keys based off prefixes.
Instead of patching `CacheContext`, which is more fragile, I'd be inclined to make all of these:

```ruby
garner.bind(session_token).bind(current_organization).bind(object) # ...
```

Will this work?