demo: Convert GTK client to asynchronous API

We now attach the Buxton file descriptor to the glib main context, which
means we only deal with events once they're available, or rather ready
for processing by libbuxton.

As and when they are recieved, libbuxton will then handle the execution
of relevant callbacks, allowing truly asynchronous use.

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