DBusMenu: restore 3.8 compatibility
Change DBusMenu implementation again

Unfortunately, calling AboutToShow correctly turned out to be a major
roadblock when using libdbusmenu. So I effectively reimplemented
it. Results so far are good, it works nearly as well as libdbusmenu
and appears to be way more sane than any of the former pure JS
implementations. I hope this is the last homegrown implementation
I have to make, because I'm quite sick of the protocol now.