Log level defaults to ERROR

Also added a config option log_level to set the logging level to any of:
logging.{DEBUG, INFO, WARNING, ERROR, CRITICAL}

Closes #246
Add Key commands to the Notify widget.

Keys can me bound via lazy.widget['notify'].toggle()

Closes #245
added hidden threshold support to battery widget

@tych0: removed unused constant, closes #247
Config is not used in qsh and Client

Closes #252
Only initialize default config when necessary

Closes #251
Provide context when using the addgroup and delgroup hooks.

- before

def main(qtile):
    @hook.subscribe.addgroup
    def goto_group():
	if hasattr(qtile, 'currentScreen'):
	    qtile.groups[-1].cmd_toscreen() @hook.subscribe.addgroup

- after

@hook.subscribe.addgroup
def goto_group(qtile, name):
    if hasattr(qtile, 'currentScreen'):
	qtile.groupMap[name].cmd_toscreen()

Closes #248
CHANGELOG++
Really fix #251

Python doesn't have lazy semantics :-)
Fix typo
Default the hide_threshold parameter to None

Sometimes for whatever reason (power draw oddities, floating point "bugs",
etc.) the power threshold goes above 100%. This ensures that the battery widget
is only ever hidden if you actually wanted to hide it.
Fix crashes due to logging problems
Unify the default widget settings.

Users can now set global defaults for widgets via:

from libqtile.widget.base import _Widget
_Widget.global_defaults = dict(
    font = 'Consolas',
    fontsize = 18,
    padding = 3,
)

in their config, before any widgets are created.

Conflicts:

	libqtile/widget/battery.py
	libqtile/widget/graph.py
	libqtile/widget/systray.py
Remove the need for ugly import hack in config

Now to configure global defaults for widgets, you can just do:

widget_defaults = dict(
    font = 'Consolas',
    fontsize = 18,
    padding = 3,
)

in your config.py

Conflicts:

	libqtile/confreader.py
	libqtile/widget/graph.py
Defaults refactoring for layouts
Update new widgets for defaults system
wip
Fix Zoomy config change.
Set background default value to None.
Remove redundant background default from graph.py.