Cache the result, not the iteratee in cached action

We were caching the iteratee in the cached action, which meant that even
when the cache was hit, most of the action would still be executed.
Rather, the result should be cached.