Fine tuning of the caches

Following some testing, there was some fine tuning necessary in the cache
class.  We also found out that g++ does some strange type mangling, so
the code to print out the cache type name didn't really work as expected.
There is some conditional code in place to add a string member, and some
initialization code, in order to use the proper type name.