Because some people are serious morons.
session: Rewrite old budgie-session in Vala

This new session binary is much more advanced than the original, and
will automatically restart elements of the Budgie Desktop as required.
It also features tighter integration with GNOME autostart concepts,
ensuring that particular parts of the desktop are activated at the
right time.
session: Fix incorrect file header
applets/ClockApplet: Use low priority callback for clock update

This no doubt will come at a slight cost of accuracy, however there is
really no need right now to display at precisely 1s an updated clock,
especially as it doesn't even show seconds.
Its a complete waste of power, and for this reason we use a low priority
callback grouped with others to run in blocks, ensuring we're not wasting
precious cpu time.
SoundIndicator: Ensure we show_all due to 3.12 wierdness
session: Ensure CSD hack header is invisible

To ensure the BudgieSessionDialog is both rounded and has a shadow, we take
advantage of CSD features within Gtk. However with some Gtk changes, and even
some Adwaita changes, the empty box is now visible on Gtk 3.12. This commit
simply ensures that the header widget is transparent and does not show
as a white line.
wm: Use newer API for Mutter 3.13 and above

This addresses issue #61 with the change in API coming in Mutter 3.14,
already present in 3.13, to not be X dependent. A welcome change.
wm/plugin: Workaround for builds on unstable API (mutter 3.13)
panel: Add initial support for dynamic panel size

Note the applets currently don't adapt to the size alterations, so this will
need to be rectified in the near future.
Update TODO list
Add schema for upcoming changes to how applets are loaded and handled
Introduce configurable layout

This feature is very much in its infancy, however users can now override
the default layout by editing ~/.config/budgie.ini which will be read at
start up, enabling a very flexible layout.
Note that several changes were made to the plugin API to enable multiple
instances of applets, moving towards a Factor::Impl methodology. It
is only possible to have a single instance of each plugin, which in
turn provide applet instances.

The default layout is provided in @datadir@/budgie-desktop/layout.ini,
and may be overriden by the vendor for their distribution. Initially an
attempt was made to use GSettings and relocatable schemas, however I have
deemed this not yet suitable for use, so will attempt to liase upstream.
Notable issues include the lack of API to iterate child relocatable schemas
in a given directory, and the ability to delete a path which is using a
relocatable schema. This means that we would either need to interface
with dconf directly, indicating an incomplete API, or rely on manually
calling --reset on dconf, however this is hacky and should actually be
resolved in glib.
Revert "Add schema for upcoming changes to how applets are loaded and handled"

This reverts commit 0ceeeefefde38a0ebe2b9fc44a4d95260ae6fe14.
Due the GSettings issue mentioned in ba370b0fb049ff9d334a86fcfaf57bfce48930b9
we currently cannot sanely use relocatable schemas for budgie-panel applets.
As and when the API is complete in GLib, this will be restored.
README: Update TODO wrt. customisation of layouts
README: Add TODO item for GNOME Panel theme integration (important.)