main: Fix potential data loss when removing multiple files

We were using a list of GtkTreePaths and deleting the items one-by-one
when the user clicked the "Delete" button. But after the first deletion,
the tree model would have changed, and instead of pointing to the 2nd
item we wanted to delete, the GtkTreePath would have pointed to another
item, usually not one that we wanted to delete.

We now use GtkTreeRowReferences, which will always point to the same
row, as long as it exists.

https://bugzilla.gnome.org/show_bug.cgi?id=729778
main: Small optimisation when removing loads of items

Won't make that much of a difference (compared to say, tracking all the
rows with GtkTreeRowReferences), but doesn't hurt.