Make IPlugin extend KTextEditor::Plugin

This is the first commit for review 120317, the following commits
are also part of this review request.
No longer use KCMs for the global and per-project config pages
No longer use KCMs for per-project config dialogs
Fix project filter no longer updating on save

After removing the usage of KSettings::Dispatcher we have to connect
to updateProjectFilters() manually
Add signal configChanged(ConfigPage*) to ConfigDialog
Port away from KSettings::Dispatcher
Coding style fixes
Port project controller away from KSettings::Dispatcher
cleanup includes in UIController
KTextEditorConfigPageWrapper -> KTextEditorConfigPageAdapter
No longer link to KF5::KCMUtils in KDevInterfaces and KDevShell
Actually remove an item from m_pages in ConfigDialog::removeConfigPage()
Also store the owning plugin in KDevelop::ConfigPage

This is need to implement the Plugin selection dialog, to make sure that
we don't keep config pages for plugins that get unloaded.
Ensure removal of config dialog pages when their plugin is unloaded
Convert PluginPreferences from KCM to KDevelop::ConfigDialog
Fix ConfigDialog::removePagesForPlugin

Actually remove the pages instead of just removing them from the list
Make PluginPage work correctly

Also work around KPageDialog emitting a signal where it should not:
Adding a page always causes currentPageChanged() to be emitted
and even worse it gets emitted with the before parameter set to null.
This makes no sense since the current page didn't actually change.

This caused a hard to debug crash, but at least it now makes sure that
the apply button is always correctly greyed out after pressing apply
even if the ConfigPage decides to emit a changed() signal while it runs
the apply() method
Move EditorConfigPage + KTextEditorConfigPageAdapter to where it's used

This means we no longer have to export these classes.
Store an IProject* in ProjectConfigPage

Also add a comment why we have to delete T::self() in the destructor
Use a d-pointer in KDevelop::ConfigPage