* 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.