A bad approach to removing the static treeNodeCache from SHAMap.

I was looking for a way to better manage the lifetime of the
treeNodeCache static member of the SHAMap class.  Being a static its
destructor ran long after the Application's destructor.

Straight forward dependency injection didn't work because there are
too many folks that construct SHAMaps.  So, just for the education,
I took a look at moving treeNodeCache to the application and having
SHAMap access it using getApp().  The approach works, and it's what
you'll see in these changes.

Unfortunately the approach is bad because calls to getApp() are
deprecated.  I'm committing these changes so people can look at
them and suggest better alternatives.