Moved context-aware logging logic/methods to the context itself. Creates
a cleaner and more cohesive pattern.
there'll always be a routeconfig for the cache so rely on the TTL == 0 to determine if caching is disabled. Also, introduce a Never() config which disables caching (same as calling TTL(0))
Even though the cache engine is required when using the caching middleware,
the APi which forced an engine to be provided was changed to a configuration
approach in order to keep configuration api consistent across all middlewares
and settings.