Implement the "set logic" for archive_match(3). It mimics the way
it is done for the "set format" and "set filter" code:
- constant macro declarations;
- setter through a reference structure in archive_match ("logic");
- various functions to switch from one matching logic to another.

Currently 2 logics are implemented:
- the default one, described as gtar-like;
- the mtree one wich is based around fnmatch(3) (globbing rules).

Others may be implemented by writing callbacks that respect the
following convention:
- return 1: the path passed as parameters matches the specified pattern;
- return 0: the path does not match pattern;
- return -1: set errno and indicate an error.

The current design prioritizes exclusion over inclusion: if a path
matches one pattern in the exclusion list and another one in the
inclusion list, exclusion takes precedence. Allowing more complex
rules requires more profound changes in struct archive_match, which
is not required ATM.
Add fnmatch(3) (mtree) matching callbacks.
Add fnmatch(3) detection to cmake/autotools. Hook mtree match code
to the build.
Merge match_path_exclusion and match_path_inclusion in one match_path
function.