* Improved and unified Match feature for Qtile

        * Unique way to define matches in Layouts, Rules, Groups
        everywhere where windows should be matched.

        * Concatenation of Match objects of same type is possible.

        * MatchNothing and MatchEverything are a possible way to
        shortcircuit some processing by putting in some amount of
        them into a MatchList.

        * MatchList, Match, MatchAll, MatchAnything and
        MatchEverything behave all the same way.

        * MatchAll requires a match of all parameters.

        Hint: This obsoletes window.match()
        But is still included untouched.

       * Added parameter description for match_all in cmd_add_rule
       * Docstring for decorator in Match()

       * Renamed configuration variable dgroups_app_rules:

           Reason:

                   I could not understand its purpose after reading the
                   Qtile documentation as i first i had a look at Qtile
                   before i was actually trying it and configuring it.

                   Because it wrote about dgroups and key mappings, so that
                   i thought that this feature is only for automatic
                   generation of groups. And the Rule only for such groups.

                   But this is wrong. It can actually be used to specify
                   some special stuff when you have "Group" with
                   exclusive=True.

                   By defining a Rule without a group you can make some
                   specific applications intrusive. Example:

                   Rule(Match(wm_class=['Pinentry']), group=None, intrusive=True),

                   By just leaving out group you specify rules for apps/windows.

                   Which is nice if you got some programs which are actually working
                   together and are own applications which would be put into a new
                   dynamic group because of exclusive=True.

                   So i would call it app_rules. dgroups_key_binder as a variable name
                   is ok. Because it maps actual dynamic groups.

                   So it is necessary to just say if you define a Rule with a nonexistent
                   Group then it is a dynamic one. But if one is existent, then it just
                   maps some settings to specific matched applications/windows.
Re-Fix for 23e9173427686739373d917c944932c3e6422a45
    * Added algebraic operations on MatchEverything() and MatchNothing()

    * Name fixes in layouts. I decided to keep the names. It also can
    serve as documentation purposes, alltough if no name is set, in
    base.py it sets it to the lowercase class name. This is the
    question, whether to keep them or remove them. Rendundancy or
    less.
Indeed, Nothing-Nothing is Nothing
    * Fixed a issue with concatenation
            * Could not merge with Match objects containing same element,
            like Match(title=['test'],) + Match(title=['test3', '234'],)
            but concatenating different worked.
    * Fixes and some simplification
    * Fixed a issue with MatchAll
    * Added AttributeError exception
config.py - Improvements on concatenation and subtraction.

    * Now you can also subtract or add to Match objects
    * Test values
    * Remove objects from MatchList
    * Modify Rule objects
Small fix
layout/max.py weird Stuff got into
config.py
            * Shortcircuit function without Exceptions
config.py
Small fix
Due to discussion
layout/floating.py fix
Merge branch 'improved_match' of github.com:sebastiankricner/qtile into improved_match

Conflicts:
	libqtile/layout/floating.py