Introduce new technique to lookup forward headers

We are now able to propose headers in the missing-include assistant,
which were not parsed before (i.e. that are not in the DUChain).

The procedure is simple: Assume we write something like 'QState',
and qstate.h is not yet included nor parsed, in some file foo.cpp.
KDevelop then checks if there is a file called 'QState' in
any of the include paths required to build foo.cpp and then adds it
to the list of possible include directives.

This is possibly useful in other areas, e.g. for the "Create From
Template" feature, as well.

BUG: 287492
Try harder not to propose unwanted includes

E.g. when typing 'new', this would currently result in proposing
including the header 'new' from /usr/include
SVN_SILENT made messages (.desktop file)
Reuse code in Refactor widget.

Reuse new functions implemented in BasicRefactoring class.
Also clean up code a little bit.

REVIEW: 115384
Move Refactoring progress dialog to kdevplatform.
Dont propose dirs in the missing-include assistant
Improve kdevelop searching for separate src and build folders

When loading a new project if the source path contains '/src/'
check to see if there is an existing directory in a seperate build folder.

This makes using kdevelop with kdesrc-build defaults work better

REVIEW: 115464
Code cleanup after parent commit
Fix inspecting of nested STL containers.

The problem is that GDB MI shows no children for dynamic STL objects,
it just add "dynamic" attribute to it. Here is -var-list-children
output for std::map< int, std::vector<std::string> > object:

SEND: "-var-list-children --thread 1 --frame 0 --all-values "var1" 0 5
kdevelop(20230)/kdevelop (gdb debugger) GDBDebugger::GDB::processLine:
GDB output:
"^done,numchild="2",displayhint="map",children=[child={name="var1.[0]",
exp="[0]",numchild="0",value="0",type="const int",thread-id="1"},
child={name="var1.[1]",exp="[1]",numchild="0",value="{...}",
type="std::vector<std::basic_string<char, std::char_traits<char>,
 std::allocator<char> >, std::allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
> >",thread-id="1",displayhint="array",dynamic="1"}],has_more="0""

As you see, the second variable, std::vector<std::string> has
numchild="0", but dynamic="1". This patch adds extra check for
"dynamic" attribute in variables.

BUG: 330734
Skip class declaration without internal context.

BUG: 330792
Pretty printer for KDevelop::Path

Reduces noisy output for this class during debugging
Properly name printer classes
GDB: Set new Variable::type property
Fix inspecting of nested STL containers.

The problem is that GDB MI shows no children for dynamic STL objects,
it just add "dynamic" attribute to it. Here is -var-list-children
output for std::map< int, std::vector<std::string> > object:

SEND: "-var-list-children --thread 1 --frame 0 --all-values "var1" 0 5
kdevelop(20230)/kdevelop (gdb debugger) GDBDebugger::GDB::processLine:
GDB output:
"^done,numchild="2",displayhint="map",children=[child={name="var1.[0]",
exp="[0]",numchild="0",value="0",type="const int",thread-id="1"},
child={name="var1.[1]",exp="[1]",numchild="0",value="{...}",
type="std::vector<std::basic_string<char, std::char_traits<char>,
 std::allocator<char> >, std::allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
> >",thread-id="1",displayhint="array",dynamic="1"}],has_more="0""

As you see, the second variable, std::vector<std::string> has
numchild="0", but dynamic="1". This patch adds extra check for
"dynamic" attribute in variables.

BUG: 330734
(cherry picked from commit 751488d07f898545c7d43af0ef1906183a4d55c3)
CLI: use openDocumentSimple multiple times instead of openDocumentsSimple

openDocumentsSimple was apparently created for a purpose different from
just opening multiple documents in succession. It has some slightly
strange behaviour when used like this (e.g. you can open the same document
twice).
Revert "If code without debug symbols or file doesn't exist raise the"

This reverts commit 2c33ab16bf88ce2893b95c72320a7b1caca6f4e2.

That commit brings more bad than good. As DisassembleWidget appers
whenever you attach to a program or edit breakpoints, which can
become very, very, very annoying.
SVN_SILENT made messages (.desktop file)
Adapt to kdevplatform changes in highlighting API

See also Review 115590.
Especially, make the customscript plugin retrieve styles provided
by the language plugins which are meant for it.
SVN_SILENT made messages (.desktop file)
QtHelp: Make the code less awful

Actually, I only wanted to exchange QTableWidget by QTreeWidget
(because, you know, noone likes QTableWidgets) but then noticed that the
code actually cried for being refactored.

This patch removes quite a bit of redundant code and makes the Qt Help
documentation dialog use a QTreeWidget instead.