Bar draw queue: only draw the bar when idle

bar.draw() now doesn't do the actual drawing, but calls gobject.idle_add to call bar._actual_draw() later, when the glib mainloop is 'idle', which is generally the next X event loop iteration.

In my setup this saves 43 calls to draw() during startup, which makes it feel much faster. It turns out that we do a lot of draws everywhere, so this is a tiny hack that could improve the CPU usage significantly in some situations.