Default config should use mod4
Add prompt and spawncmd hotkeys for default config

Not that the default config needs to get super fancy, but hopefully users who
use the default config can extract more value from having a launcher, rather
than having to start everything from xterm.
Add documentation for default config

Closes #290
Removed 1 unnecessary level of cyclomatic complexity
Removed another unnessary level
Use pre-calculated cidx
Removed duplicate if/else
Fixed fuzzy commit 9285075e2d66f396c

Closes #292
fixed tasklist widget, added the needed defaults

Closes #294
Prevent MPD widget from crashing on missing metadata

Closes #296
readded the option to set master and ratio for tile from Dgroup
move dgroups inizialitation to a method, to allow dynamic adding
fix exclusive, instrusive, and not persistent groups in dgroups
moved rules from Group to dgroups_app_rules and moved Rule to config

this rules makes no sense in the group object becouse they are group
independent.
config example:

dgroups_app_rules = [
        # Everything i want to be float, but don't want to change group(intrusive)
        Rule(Match(title=['nested', 'gscreenshot'],
                   wm_class=['Gcr-prompter', 'Ghost',
                        re.compile('Gnome-keyring-prompt.*?')],
                   wm_type=['dialog', 'utility', 'splash'],
                   ),
            float=True, intrusive=True),

        # floating windows
        Rule(Match(wm_class=["plugin-container", 'Gimp', 'Wine', 'Xephyr']),
            float=True),
        ]
fix deletion of groups when len(groups) -= 1+len(screens)
Remove layout specific code from dgroups
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