[gnome-base/gnome-shell] port from tree, backport some patches from git