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.
s/_fontsize/fontsize
Fix more tests/errors due to defaults refactoring
Fix remaining tests

Since the test configs inherit directly from libqtile.confreader.File, we
should not overwrite their attributes with the defaults without first checking
if they exist.
Rearrange some things to avoid circular imports
Remove unused manager imports from widgets.
Notify now needs _TextBox._configure as None fontsize needs to be properly parsed.
Fix error in clock widget from rebase.
Update the registerWidget documentation

Closes #241
Test configs don't inerit from confreader.File

Not sure why I originally did this, but it's unneeded (and in fact causes
problems; user configs are read during testing, which is obviously a no-no).
generalized symbols for yahoo weather

Closes #259
Merge branch 'defaults-refactoring' into develop

Conflicts:
	libqtile/widget/yahoo_weather.py

Closes #258
merged upstream develop branch