Add Matrix layout

Closes #299
Update pacman.py

Checkupdates is a non-sudo way of checking for updates as using pacman -Qu
only checks for out-of-date packages with your local package list. Pacman -Su
updates the package lists but requires sudo access to do so.

You could have a cron job that updates the package lists and then pacman -Qu
would suffice.

Closes #301
Move next/prevgroup, add togglegroup
update unit tests

grouptoggle -> togglegroup
whitespace fixes
When deleting a group, switch to previous group

...insted of the previous configured group.

Closes #304
Fix unit test
patch for iss300

Change the window's layout level behavior
When focusing on a window, bring it to front.
Floating(but not maximized or fullscreened) windows always on top.

Closes #300
Closes #302
Update CHANGELOG
fix AGroupBox.button_press()

Closes #306
cmd_ changes to bring behaviour in line with stack

cmd_up/cmd_down now behaving as cmd_next/cmd_prev and
cmd_shuffle_up/cmd_shuffle_down is introduced.

Closes #307
Revert "patch for iss300"

This reverts commit defbf1f624b34645926a773d9486b2856a1aad2e.

See discussion on #308 for more info.
Fix floated window loses focus.

Can't call commands in layout remove as this is called whether the
layout has focus or not.

Closes #310
Fix volume widget not drawing correctly

We use the underlying drawer to compute the width of the widget when in
CALCULATED mode. Since we didn't update the drawer before trying to figure out
the width, the widget was using the old width.

Closes #266
first try to fix fullscreen
Set _NET_WM_STATE when the client requests to do so (fixes fullscreen)

Tested with mplayer2, chrome and firefox.

Also refactored handle_ClientMessage to use sets to handle the state
flags, and added a small TODO to xcbq's get_net_wm_state(), pointing out
that it returns only the first item of the list (this doesn't affect
anything as long as we support only _NET_WM_STATE_FULLSCREEN)
Implement a few essential EWMH hints

Including _NET_SUPPORTED, _NET_SUPPORTING_WM_CHECK and _NET_WM_NAME.

Fixes fullscreen on gnome-terminal, which checks first if there's an
EWMH compliant window manager using _NET_SUPPORTING_WM_CHECK, then looks
into _NET_SUPPORTED for the needed flags (_NET_WM_STATE_FULLSCREEN)

(The xcbq.SUPPORTED_ATOMS list is obviously incomplete, please add more
if needed)
Honour auto_fullscreen config.

Check auto_fullscreen setting before analysing the _NET_WM_STATE
ClientMessage.
Update test configurations.
Add a default timeout for all notifications

Closes half of #311