Move static treeNodeCache from SHAMap to the Application

These changes address two JIRA issues:

 - 291 unittest reported leaked objects
 - 292 SHAMap::treeNodeCache should be a dependency injection

I think this is OK.  Do remember that we are in the "unity build" so that all symbols are visible almost everywhere, so that "using" statements are potentially far-reaching and dangerous.  In this case, this seems like a good idea...