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

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