Create and utilize caches for indices, one per index access type. This
is needed so different access methods within one transaction will not
override the otherwise would-be common cache. On top of the caches
themselves a counter has also been added per access methos type to make
sure that calls to AdvanceMethod are handled correctly from the caching
point of view.