config: get initial support for a json config file
config: port all the widgets that need configuration to the new system
Merge remote-tracking branch 'ricardo-vieira/json-config' into develop
Code and whitespace cleanup

Widget names have been converted from CamelCase to snake_case. A larger warning
is displayed in stderr if the config file can't be found or is invalid. The
default theme uri has been fixed. The config file has been renamed to
"config.def.json" to indicate that this is the default config.

Ref #29
config: add position and enabled properties to widgets
Update README
widgets: refactor data structures

Ref e7bbeb42dce8f69f3f18540d09b2a50e5256dc1b
widgets/desktop: split window_title to own widget

All globals have also been removed from these widgets.

Conflicts:
	src/widgets/desktops.c
	src/widgets/widgets.h
widgets: handle widget disable flags from autotools
widgets/battery: get rid of globals
widgets/weather: fix segfault on HTTP request and JSON decode error
Merge branch 'feature/refactor-widgets' into develop
widgets/mpd: fix default config keys
main: fix malloc call
widgets: possible fix for segfault

Use malloc instead of calloc, ref #30
Merge branch 'fix/segfaults' into develop
widgets/weather: update calloc calls with a member size of 1

Ref #30
widgets/mpd: remove unnecessary headers
README: make xcb an optional dependency
autotools: make XCB optional dependency