CRM-15578 - Add Civi\Core\Resolver. Fix loading of Angular content after updating components.
After enabling or disabling components, the Angular content may have
changed, so we must call CRM_Core_Resources::singleton()->resetCacheCode.
This commit does so in a few pieces:
* It updates the admin UI so that it uses the API for saving changes to
"enable_components". (This resolves a split where UI+API were different.)
* It updates the "enable_components" setting so that changes trigger
a cache-code reset.
* It updates the settings framework so that callbacks can reference
non-static functions. (The objects must be registered in "Container".)
* It exposes some of our singletons (eg CRM_Core_Resources) as objects
in "Container".
* It adds a helper function (Civi\Core\Resolver) which can be used to
convert references from data files (*.setting.php, *.xml, *.yml, etc)
into objects/callables.
* It updates various places that use callbacks from data files to
go through Resolver.
See also: http://forum.civicrm.org/index.php/topic,35579.0.html