CRM-14370 - Add event-dispatcher that can be used internally

The hook-based event-dispatcher requires implementing new top-level modules
to subscribe to an event.  We'll have use-cases were we want core to define
multiple subscribers.
CRM-14370 - civicrm_api() - Move main logic to Civi\API\Kernel
CRM-14370 - API Kernel - Dispatch events
CRM-14370 - API Kernel - Extract TransactionSubscriber
CRM-14370 - API Kernel - Extract XDebugSubscriber
CRM-14370 - API Kernel - DRY exception-handling; fix inconsistencies
CRM-14370 - API Kernel - DRY result formatting
CRM-14370 - API Kernel - Extract I18nSubscriber
CRM-14370 - API Kernel - Move authorization to listener
CRM-14370 - API Kernel - Extract APIv3SchemaAdapter
CRM-14370 - API Kernel - Extract WrapperAdapter
CRM-14370 - API Kernel - Fix short-circuiting which breaks formatters/exceptions-handlers
CRM-14370 - API Kernel - Extract createRequest()
CRM-14370 - API Kernel - Add ProviderInterface. Extract MagicFunctionProvider.
civicrm_api3_create_error - Simplify