Create a cache module type and adjust a few of its
methods to be more pythonic and then switch out the
work_based engines usage of it and adjust its tests
methods with adjusted methods using the new cache
types functionality.
Part of blueprint top-level-types
Change-Id: I75c4b7db6dd989ef328e9e14d4b00266b1c97a9f