Memoize method calls by default during an authz request

Benchmark for evaluating 10 identical rules. An expensive attribute is
simulated by using `sleep(1)`


```
                               user     system      total        real
10                         0.000000   0.000000   0.000000 (  0.001206)
10 - Expensive             0.000000   0.000000   0.000000 (  1.002305)
10 - Expensive: No Cache   0.000000   0.000000   0.000000 ( 10.011657)
```