Initial implementation of a desktop notification service
hide window when moving to other group and window.group is None

this fix that windows on restart qtile are all in first group until we
move to their group using dgroups
First half-funtional implementation of tree tab layout
Added `draw_vbar` and `draw_hbar` methods to drawer and using them in
separator
`TreeTab` layout now looks more like a tree
Implemented tree manipulation commands
`show`/`hide` hooks for layouts
TreeTab layout finally became usable (left panel hides peacefully)
Implemented expanding and collapsing branches
Fixed removing window having children
Better default sections
Moving windows between sections implemented
Updated example config
Fixed bug of non-repainting panel when removing window
Made the volume widget work on Python 2.6

widget/volume.py used subprocess.check_output in get_volume to call the
amixer program. That call was introduced in Python 2.7. This changes
get_volume to use subprocess.Popen, while retaining the same semantics
(namely raising subprocess.CalledProcessError if amixer fails for some
reason).
Merge remote branch 'kstrauser/master'
Merge remote branch 'roger/master'
Added a configurable update interval to volume.py

By default, the volume.py widget runs 'amixer' every 0.2 seconds. On
my wimpy little netbook under battery power, that used 15% of the CPU.
Since I don't change the volume very often, I changed the update_interval
in my config.py to 10 seconds and the CPU usage dropped below 1%.

Also replaced a string format with os.path.join.
Added expose event handling for treetab panel
new cmd_function to call lazy functions
New windows now appeared just after focused

Probably this makes navigation a bit easier
Added minimal mouse support to tree layout
Fixed moving windows between sections