Added AshikhminCache to make sure the cache is only created once per
unique MicrofacetDistribution. Note the actual computation is not yet
done, and we need to use mutex to protect the code accessing the cache