* Use one template to implement both Caches
* Use shared_ptr to the caches. This is necessary to not crash
when the toolchains get deleted while the compiler is being run
* Pass language to header path retrieval code and use that information
* Add unit tests for cache used by the toolchain
Change-Id: Ic31e7c4c1ed8158af7f2cdfda8104255efb06aea
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>