add a timer_setup event for widgets

A Widget's _configure is called each time the screen is configured (e.g. if you
resize the screen due to xrandr calls or something), so we want to avoid
(re-)setting up timers in _configure.

Previously, widget authors were responsible for understanding this themselves,
and being cautious not to add timers multiple times in configure. Now, qtile
provides a timer_setup function where widgets can set up their timers safely
(i.e., it is only ever called once, but after it is safe to set up timers).

This patch is mostly driven by the new event loop. Since we use the qtile
object's event loop for adding timers instead of the global gobject loop, we
can't add timers in __init__ any more, so we need some other primitive.