Use a GtkListBox instead of a GtkTreeView

The biggest reason to get rid of some of our `GtkTreeView`s (which are
supported by `GcrCollectionModel`), as they're leading to bugs when
scrolling or selecting items.

The first element to accomplish this is a new object: `SeahorseItemList`
`SeahorseItemList` is a wrapper to easily combine a `GtkListBox` and a
`GcrCollectionModel`. In the long term, we probably want to get rid of
the latter in favor of `GListModel`s everywhere, but this will also need
changes (and the appropriate deprecations) in libgcr.

Second, we create a `KeyManagerItemRow`, which represents a widget in
the main window (the `KeyManager`), rather than using custom

Third, we rewrite the `SideBar` to also make use of an internal
`GListStore`, combined with a `GcrUnionCollection` to keep the
transition smaller.

Note that this is one big commit, which I normally really dislike, but
it was the only practical way, since a lot of the things were linked
together in some unfathomable way, which meant that changing something
could break the code somewhere completely else.
1 job for wip/nielsdg/seahorse-listview in 5 minutes and 51 seconds (queued for 1 second)
Status Job ID Name Coverage
passed #555299