Use KotlinCacheManager to analyze all headers only once
Use a SLRUCache to reduce memory consumption
Source files copied under project: to make "get all project files" work