First stab at adding MetadataManager

This is NOT ready to merge yet. I'll be adding implementation for the functions in the next couple of days.
That's an interesting option...seems strange to call a "load objects" method with a parameter that effectively says, "Don't load objects.  Instead, clear the cache of objects and be done."

Wouldn't it make more sense to have a separate `clearSmartScopeObjectTypesCache` method, or similar?  I'm early into the design review, so maybe there are other reasons that the current flow makes sense.