Implement custom Inventory Cache based on the assumption that variations expired.

No Cache:
  13R: 46635.932 +/- 310.994 (min=46014.113, max=47618.809)
  1R: 3578.318 +/- 2879.959 (min=197.390, max=11038.699)
ERP5 Generic Cache:
  13R: 183.267 +/- 24.720 (min=163.087, max=303.120)
  1R: 28.588 +/- 11.183 (min=18.977, max=76.923)
Yoshida's Inventory Cache:
  13R: 102.679 +/- 8.349 (min=96.516, max=166.872)
  1R: 16.384 +/- 3.301 (min=10.767, max=27.993)
Yoshida's Inventory Cache using catalog.indexation_timestamp instead of stock.date:
  13R: 138.370 +/- 9.424 (min=132.227, max=187.422)
  1R: 47.519 +/- 7.743 (min=23.233, max=68.214)

New SQL INDEXES:
  ALTER TABLE stock ADD KEY `resource_section_node_date` (`resource_uid`, `section_uid`, `node_uid`, `date`);
  ALTER TABLE stock ADD KEY `variation_text_section_node` (`variation_text`, `section_uid`, `node_uid`);
Ignore 'ロット管理しない' Products when querying KR Inventory Cache.
Avoid modification of SimulationTool and instead customise Inventory Cache
through SimulationTool_getInventoryCustomCache.

Also, if getInventoryList() calls could be handled with the custom cache,
fallback on generic cache which is in most cases better than nothing.