Allow PER_USER/ PER_ROLE cache garnularity

Currently our granularity is ``PER_USER``, which might be over paranoiac when dealing with content that all users may consume in the same way. In that case It would significantly improve performance for users as only the first user in the role will get the cache miss.

@mateu-aguilo-bosch thoughts?