CRM-13768 - enable_component - Use same logic when toggling components via API/web

The problem in CRM-13768 is that the activation-logic for CiviCase was wrapped up inside the administration forms (CRM_Admin_Form_Setting_Component::postProcess), and the activation-logic would not be called if one toggled CiviCase using the Setting API. This PR addresses the problem with a few steps:

1. Add support for using callbacks whenever a setting is changed
2. Move CiviCase activation logic out of the form layer (to somewhere more re-usable)
3. Call CiviCase activation logic whenever one changes the "enabled components" setting