Reimplemented menu handling again

This time, we're using libdbusmenu. This will hopefully free
us from all the strange corner cases and make our appearance
more similar to KDE and Unity.
Fixed runtime varnings about null variants

gjs_dbus_implementation_emit_property_changed's 'newValue' parameter is
annotated as "allow-none", but the implementation tries to g_variant_ref
it anyways which creates ugly warnings in the log.