widgets: remove widget declarations from widgets.h
waf: build all widgets as shared objects
waf: add glib/gmodule deps
config: update config format

Added a separate array of enabled widgets, this will be used for dynamically
loading widget libraries and passing the widget sort order to the theme.

TODO: recreate datetime widget, require that all widgets are implemented as
C shared libraries
widgets: add functionality to spawn widget threads

Ref #26
waf: update object and library compilation and installation

curl/dbus objects are now correctly compiled with -fPIC for linking with
the shared objects. Shared objects are installed in LIBDIR, which is
configured as ${PREFIX}/lib/wkline by default.

LIBDIR can be overridden for running wkline with another library search
path, this can be useful for widget development/usage of wkline without
installing it in a system path:

    cd /home/user/wkline
    waf clean configure build --libdir='/home/user/wkline/out/usr/local/lib/wkline'
    waf install --destdir='out'

TODO: find a better way to load libraries with a relative search path.
widgets: use pthreads instead of the GThread wrapper

I have no idea why GThread exists, but it hides a lot of functionality,
like the ability to ask child threads to cleanup through e.g.
pthread_cleanup_push(). I haven't found a way to communicate with
child threads with glib, and pthreads honestly feels like a much
cleaner solution.
widgets: cancel threads on interrupt signals and window reloads

TODO threads need to have cleanup handlers attached to free resources
when the cancel signal is sent.
waf: add debug build options
widgets: add cleanup handlers

Ref #26
README: add dev build instructions
Merge branch 'feature/loadable-modules' into develop

Closes #26