Add new utility class KDevelop::ObjectList

Used for tracking a set of live QObject-pointers.
This list is automatically shrinked in case one of the QObject pointers
is deleted. This means you have an always up-to-date list of pointers.
Fix issues around BuilderJob

Changes:
- Don't register child jobs in the run controller
- Merge general-useful code from BuilderJob into ExecuteCompositeJob
- Also merge the kdelibs-workaround inside BuilderJob to ExecuteCompositeJob
- Drop stopOnFail property. It was never used.

This patch makes it simpler to reason about the semantics of composite
jobs inside KDevelop. Now, only the parent (composite) job is registered
inside the run controller. The composite job (here:
ExecuteCompositeJob) is supposed to "drive itself" when one of its child
jobs is finished.

This patch also cleans up the current job list in KDevelop. This will
also make it easier to show progress bars for build jobs once we have that
implemented
Remove unused class: KDevelop::SequentiallyRunJobs

This duplicated KDevelop::ExecuteCompositeJob which is even more
powerful
Minor: Code cleanup

Unnecessary explicit default-initialization
Fix unused-variable warning