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