Different GIO backends can fail in different ways trying to query
file infos. If that's the case, fail back to safe get_basename()
instead of crashing.
Under broken configurations, it is possible that a special directory
is configured but does not exist. In that case, just skip the menu item
altogheter.
Let's go GNOME 3 style, and make a places menu that looks like the sidebar
in Files, with for subsections corresponding to default places, devices,
bookmarks and network mounts.
Among other things, this should fix the duplicate home or duplicate desktop
bookmark problem (as now we don't bookmarks that are same as the default
locations), and it makes us future proof for the removal of PlacesManager
in core shell.