Refactor the custom defines and includes plugin.

The compiler provider is not a plugin anymore, but a library that
is used in multiple places. In KF5, when the KCM is also not a
plugin anymore, we can merge all three together into one single
plugin .so.

For now, this move already simplifies the logic tremendously and
removes a lot of boilerplate code that was required to access
the CompilerProvider/SettingsManager from various places.

Note that the distinction between CompilerProvider and SettingsManager
is also pretty artificial. I plan to merge the two classes together
and futher clean up the code then. There is a one-to-one relation ship
after all between these two classes.

In addition to the above, I cleaned up the code wherever I noticed
any opportunity for that. There are probably more places for that.

CCMAIL: kalinichev.so.0@gmail.com
Use debugfull configuration whenever it is available.

Esp. with newer FindKDE4Internal.cmake files this configuration is
also available for Clang and required there. As soon as any function
gets inlined, our unit tests would fail otherwise...
Revert "Use debugfull configuration whenever it is available."

Apparently this is unsupported, see:
http://public.kitware.com/Bug/view.php?id=14634

This reverts commit 56044bcbe5b0e9e19fd83995563e31fdd4cde222.
Use the add_debuggable_executable macro everywhere its required.

Apparently that is more reliable than setting CMAKE_BUILD_TYPE
in a subfolder. See also:

http://public.kitware.com/Bug/view.php?id=14634
Minor code cleanup
Fix regressions introduced by recent refactoring.

Fixup signal connection to use fully qualified ID.
Take correct type out of variant.
Reduce QVariant usage.
Make compile for me
Fix environment-cd for paths containing spaces.

Problem: GDBMI only accepts paths containing spaces if they are in
double quotes otherwise cd will fail.

Solution: Add prepend and append double quotes to the dir string
instead of using KShell::quoteArg.

REVIEW: 121061
BUG: 339231
SVN_SILENT made messages (.desktop file)
Don't access dangling pointer

'project' was already deleted at that point
Fix test in combination with GCC 4.9.1 and -O2

Actually we're relying on undefined behavior in the tests, because
accessing `p->foo` is undefined since the lifetime of `p` has already
ended.
Disable missing decl assistant for namespaced ids

This gets rid off another assistant offering useless solutions

REVIEW: 121205
Revert "MissingDeclarationAssistant: Only show identifier"

Otherwise the assistant will show an empty string as target context
in case the decl is to be added in the local context ("Declare 'foo' as
member of ''")

This reverts commit aa7e0a5da8539965cb2a6b393d93f421d47e4719.
SVN_SILENT made messages (.desktop file)
SVN_SILENT made messages (.desktop file)
Bind return value to const&.

Using the range-based for loop would otherwise detach the container,
leading to unnecessary copying of the items.
Merge remote-tracking branch 'origin/4.7'

Woha, this is a big merge conflict list... Thankfully, most of this
comes from scripty changes. The possibly buggy part of this commit
is the refactoring of the cusotm-definesandincludes plugin.
So, if possible: Please test, everyone!

Conflicts:
	app/kdevelop_ps.desktop
	app/plasma/applet/package/metadata.desktop
	app/plasma/dataengine/plasma-dataengine-kdevelopsessions.desktop
	app/plasma/runner/kdevelopsessions.desktop
	app_templates/cpp/CMake/cmake_plaincpp/cmake_plaincpp.kdevtemplate
	app_templates/cpp/CMake/cmake_qt4core/cmake_qt4core.kdevtemplate
	app_templates/cpp/CMake/cmake_qt4core_qtest/cmake_qt4core_qtest.kdevtemplate
	app_templates/cpp/CMake/cmake_qt4gui/cmake_qt4gui.kdevtemplate
	debuggers/gdb/CMakeLists.txt
	debuggers/gdb/debugsession.cpp
	debuggers/gdb/unittests/CMakeLists.txt
	debuggers/gdb/unittests/test_gdb.cpp
	file_templates/classes/c_gobject/c_gobject.desktop
	file_templates/classes/c_gobject_private/c_gobject_private.desktop
	file_templates/classes/c_gobject_properties/c_gobject_properties.desktop
	file_templates/classes/cpp_basic/cpp_basic.desktop
	file_templates/classes/private_pointer/private_pointer.desktop
	file_templates/classes/python_basic/python_basic.desktop
	file_templates/classes/qobject/qobject.desktop
	file_templates/classes/qt_shared/qt_shared.desktop
	file_templates/classes/qt_widget/qt_widget.desktop
	file_templates/other/cmake_module/cmake_module.desktop
	file_templates/testing/cpp_qtestlib/cpp_qtestlib.desktop
	file_templates/testing/cpp_qtestlib_kde/cpp_qtestlib_kde.desktop
	file_templates/testing/cpp_qtestlib_kdevelop/cpp_qtestlib_kdevelop.desktop
	file_templates/testing/php_phpunit/php_phpunit.desktop
	file_templates/testing/python_pyunit/python_pyunit.desktop
	languages/cpp/cppduchain/missingdeclarationassistant.cpp
	languages/plugins/custom-definesandincludes/CMakeLists.txt
	languages/plugins/custom-definesandincludes/compilerprovider/CMakeLists.txt
	languages/plugins/custom-definesandincludes/compilerprovider/compilerprovider.cpp
	languages/plugins/custom-definesandincludes/compilerprovider/compilerprovider.h
	languages/plugins/custom-definesandincludes/compilerprovider/compilerproviderexport.h
	languages/plugins/custom-definesandincludes/compilerprovider/gcclikecompiler.h
	languages/plugins/custom-definesandincludes/compilerprovider/kdevcompilerprovider.desktop.cmake
	languages/plugins/custom-definesandincludes/compilerprovider/settingsmanager.h
	languages/plugins/custom-definesandincludes/compilerprovider/tests/CMakeLists.txt
	languages/plugins/custom-definesandincludes/compilerprovider/tests/test_compilerprovider.cpp
	languages/plugins/custom-definesandincludes/definesandincludesmanager.cpp
	languages/plugins/custom-definesandincludes/definesandincludesmanager.h
	languages/plugins/custom-definesandincludes/kcm_widget/CMakeLists.txt
	languages/plugins/custom-definesandincludes/kcm_widget/compilersmodel.cpp
	languages/plugins/custom-definesandincludes/kcm_widget/compilerswidget.cpp
	languages/plugins/custom-definesandincludes/kcm_widget/definesandincludesconfigpage.cpp
	languages/plugins/custom-definesandincludes/kcm_widget/defineswidget.h
	languages/plugins/custom-definesandincludes/kcm_widget/kcm_kdevcustomdefinesandincludes.desktop
	languages/plugins/custom-definesandincludes/kcm_widget/projectpathsmodel.cpp
	languages/plugins/custom-definesandincludes/kcm_widget/projectpathsmodel.h
	languages/plugins/custom-definesandincludes/kcm_widget/projectpathswidget.cpp
	languages/plugins/custom-definesandincludes/kcm_widget/projectpathswidget.h
	languages/plugins/custom-definesandincludes/kdevdefinesandincludesmanager.desktop.cmake
	languages/plugins/custom-definesandincludes/tests/test_definesandincludes.cpp
	projectbuilders/cmakebuilder/kcm_kdev_cmakebuilder.desktop
	projectbuilders/ninjabuilder/kcm_kdev_ninjabuilder.desktop
	projectbuilders/ninjabuilder/kdevninja.desktop.cmake
	projectmanagers/custom-buildsystem/kcm_kdevcustombuildsystem.desktop.cmake
	projectmanagers/custom-buildsystem/kdevcustombuildsystem.desktop.cmake
	providers/ghprovider/kdevghprovider.desktop.cmake
Cleanup code, this should not be required.

And we don't support GCC < 4.7 anyways in KF5 based KDevelop.
Fix race condition on startup.

I think this will need to be backported to 1.7 as well.