ProjectLevelConfig contained multiple inefficiencies:
1) In CachedProjectConfig we only cached a String that we parsed
dynamically when asked for a project level config.
2) When resolving a ProjectLevelConfig with inheritance, we yet
again made mutable copies by calling Config#toText/fromText.
This made it so that for a ProjectLevelConfig requested at level N
in the project hierarchy, we called Config#{to,from}Text 4*N times.
code-owners calls requests a ProjectLevelConfig quite frequently
while processing. This is something we can look at serparately,
but it exemplified the problem.
Change-Id: I58e3fed45cd2685cce47f2acc94f70de93b1845a