libide/tree: port to GtkListView

Christian Hergert requested to merge wip/chergert/project-list-view into main

This has the potential for a lot of fallout, so lets get thigns landed as early as we can. This is a fairly substantial port to using GtkListView for the project tree instead of GtkTreeView, all while still using a familiar "IdeTreeNode" tree of objects + addin builders underneath.

We also delete some code that is no longer necessary now that we got the annoying bits out of GtkTreeView.

Immediately, there is some fallout for updating things like Git status while nodes are in the tree. But we can address that after the branch is merged (as it's not particularly great even today with GtkTreeView).

Some other parts are missing too like invalidate-all, but that doesn't seem to be a huge issue at the moment given there is only one consumer of IdeTree (the GbpProjectTree).

Merge request reports