This adds a pipeline cache and the ability for modules to invalidate this cache just like the template file watcher