Added a Locker class to the Bu::CacheObject base class.  This is a super simple
wrapper that lets you take advantage of nifty Locker based mutex locking when
in a CacheObject subclass.
Removed an incorrect formatter << operator, and corrected a const_iterator vs
iterator issue in Bu::String.
Fixed some random whining issues, dropped extra char * formatter references,
and fixed a null/integer issue in Bu::Hash
Got rid of the last non-const formatter << operator references.
Updated the cache system.  It now ensures that objects are initialized with
cache information before they are deserialized from storage.  This changed the
signature of the cache loading template function, but the new function isn't
harder to use, and provides the key information as well.
Attempting to fix OSX compatibility, it's not 100%, but it builds and most things seem to work.  We've also tested against LLVM.
Updated Makefile, I used g++ instead of ${CXX} in several places.