Require an instance of Config instead of a pointer
This release requires an instance of Config instead of a pointer in New, in order to avoid common mistakes when applied concurrently. Furthermore, this change moves the generation of cache-controls from request-invocation to middleware-instantiation to increase performance.