Only serve from cache when maxAge is met or is explicitly set to false

This is the squashed and rebased continuation of #634.