Move cache access code out of the compiler class
Move cache access code out of the compiler class

1. Move shader cache hanlding code to cache accessor

The compiler class has a lot of code that checks and updates the shader caches.
This code is now only called from the CacheAccessor class, so it will probably
be better in that class.

2. Move Icache hanlding code to cache accessor

The compiler class has a lot of code that checks and updates the Icaches.
This code is now only called from the CacheAccessor class, so it will probably
be better in that class.

3. Remove the compiler member from the cache accessor class.

4. Rewrite shader cache lookups

The code at it currently stands is hard to read.  It relies on clever
use of arrays and checking if we are checking the last element of the
array.  Since it can only be two elements, it is better to be more
explicit.

5. Replace the compiler in the cache accessor constructors

The CacheAccessor class does not need the compiler object. We
refactor the code so that it gets the internal caches instead of the
compiler object.

googlestadia/llpc,googlestadia/llpc,GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc,googlestadia/llpc,googlestadia/llpc,GPUOpen-Drivers/llpc,googlestadia/llpc