panel: Correctly handle window closing

We previously didn't handle maximize state tracking for windows about to
close, therefore our max_count would never reset, and the panel would remain
dark until it had been restarted.
We now ensure we track the closing state, and the previous functionality
for obtaining our parent toplevel and notifiying the BudgiePanel instance
has been refactored into a private function.
session: Lie about desktop environment

Under certain configurations some tools may not work, such as xdg-su.
This commit lies about the desktop environment (setting it to GNOME) so
that tools like xdg-su under YaST/OpenSUSE work (fixes issue 10)
budgie-popover: Do works to enable true LHS placement of menu
set the icon geometry in order to fix the minimise animation

---
Fixes #36
Signed-off-by: Ikey Doherty <ikey.doherty@gmail.com>
session: Ensure dialog is hidden from panel (fixes #49)
session: Autostart XDG *system* items only

We now no longer manually invoke gnome-settings-daemon, instead we iterate
and execute all items discovered in /etc/xdg*/autostart (XDG config
directories).

Note that per-user XDG settings are not yet taken into account, and we
do not yet support auto-start conditions.
session: Support GSettings based autostart conditions
Update README. Not that its ever read. Ironic name. :P
menu-window: Reload menus should they change

GMenuTree automatically monitors the known application files directories
for changes, i.e. a user has removed, updated or installed a software
package. In this instance we now reload our contents dynamically so
that the budgie-panel process no longer needs to be restarted.
panel: Fix several gtk_container_get_children related memory leaks
wm: Use faster animations so applications are "ready" sooner
panel: Convert to GApplication to enable --menu invocation

BudgiePanel now runs as a single instance, enabling it to be spoken to.
This has been done specifically so that someone may invoke budgie-panel
with the "--menu" option, which will cause the main menu to appear.
wm: Link "budgie-panel --menu" to panel-main-menu keybinding

On Evolve OS this will result in the main menu being invoked when someone
uses the <Super_L> key, it is controlled by the GNOME keybindings prefs.
panel: Fix comment
session: Fix memory issues

Ensure we free strings coming back from dbus and don't unref ourselves
when GTK will already do that.
Let the people know (README)
budgie-session-dialog: Implement suspend support
budgie-session-dialog: Rename and re-order items logically
budgie-session-dialog: Use real name where possible
budgie-popover: Do not unmap/unrealize the widget

In the past we unrealize()d the widget, which has the effect of freeing
all related Gdk resources. This in turn makes it much slower for the
popover to appear in the first place, as the resources must be regained.
We now ensure to track our own known dimensions and use those so that
we have no need to rebuild ourselves.