Include less in appendedlist.h.

This header is basically included everywhere (really needs to be cleaned up).
For now, to reduce the amount of warnings triggered, I ported it away from
some KDE4 stuff.
Add a Path::hasParent method with tests.

This is useful to loop over a path and all its ancestors.
Port from KUrl to QUrl.

Based on the initial patch by Dāvis Mosāns, many thanks for that!
There where many things left to do though and the following should
be read by everyone who wants to port a plugin to KUrl:

Add -DQT_NO_URL_CAST_FROM_STRING to your project, otherwise you
are doomed to long debug sessions.

Always be explicit when constructing a QUrl out of a QString.
Think about what the QString represents. Most of the cases we only
care about absolute paths, potentially with a remote host and protocol.
In such a case, the QUrl::fromUserInput is the correct choice. If its
a local file, i.e. comes out of QDir, QFileInfo etc., always use
QUrl::fromLocalFile. Generally, if your plugin only works with local
files, use the latter. *Never* use the QUrl(QString) constructor,
except if you really want to concstruct a relative URL. A common
pitfall is e.g. QUrl(IndexedString(...)). Always prefer
IndexedString::toUrl() instead.

Note that there are, sadly, far too many places in our code base
which abuse QUrl for general "Path" handling. If possible, rewrite
your code to use KDevelop::Path in such a case. It's also much
simpler to port the KUrl to Path directly.

REVIEW: 120123
Simplify code.
Revert all requests when passing nullptr.
Fixup unit test.
Cleanup code and port to new KTextEditor signals.

Note that we could potentially optimize this once we
get access to more signals from KTextEditor.
Do not crash when FileManagerListJob gets destroyed before finish.

It will the emit the finished signal via the KJob dtor at which
point the FMLJ data is not available anymore. To protect against
dangling pointers, we then iterate over the full list and ensure
the ptr is removed.

This is pretty ugly but I don't see a safe alternative.
Do not emit a warning when a Path is constructed from an empty URL/string
Add some debug output
Fixup generation of project config file.

I seem to have edited the generated file without noticing,
instead of fixing the template code. Sorry about that.
Only compile benchmarks when compiler optimizations are enabled.
Cleanup: C++11 is enabled by KDeCompilerSettings.
Do not try to restore invalid working set views.
Fix assertion on project open with invalid URL given.

We ask the user for input first in such occasions.
Port qSort -> std::sort
Add unit test for ExecuteCompositeJob and remove dead code.

We depend on KF5 so it's fine to kill old KDE workaround code.
Do not auto-start the FileManagerListJob.

This can lead to funny side-effects, esp. when we put such a job
into an ExecuteCompositeJob. Assume this:

ECJ:
  -> child1
  -> child2
  -> FMLJ

Now the ECJ gets started and previously we also started the FMLJ.
If the latter finishes before the previous jobs in the ECJ finished,
we could end up starting them *twice*...
Enable unit test and cleanup in init function.

This makes the test more resilient against failures.
Remove more dead code.