demo: Convert GTK client to new API

This commit leverages the new API to drastically reduce the amount of
code required to interact with Buxton. Future commits will strip the
code back even further, requiring much less boiler plate code and some
reusable initializers.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
demo: GTK Demo code cleanup

To make the demo useful to others, the demo should provide the cleanest
possible code, and be very clear in everything that it does. For this reason,
Buxton initialisation is handled within a buxton_init function that
does everything required to use the Buxton API.

It should be noted this commit also makes positional arguments much more
obvious by defining GROUP, LAYER, etc, within the header file, ensuring
the code is trivial to understand.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
demo: Cleanup GTK demo a bit

This commit removes some redundancy from the demonstration, by making use
of the new API to enable only one callback for all Buxton calls.
We also add more flexibility to our buxton_callback by testing both the
name and type of the key in the callback, whether we've been executed
as the result of a get_value operation or notification.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>