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