Do not dereference the archive pointer if it is NULL.
Typo fix (missing whitespace).
Add the user, host, time et fullpath data in the comment section
(classic mtree).
Typo fix.
Make the "classic" output the default one for mtree.
Do not output dot dot ("..") twice when ascending back from children
directories.
The ".." output is handled by the "post-order" ascending code after the file
entries get treated through the RB tree.
Typo fix.
Implement the output expected for "classic" mtree: user, host, fullpath
and time values.
Add options to set/unset these values through libarchive's
archive_write_set_option() API.

The following convention is now used for the mtree format in libarchive:
- options prefixed with "mtree-" can be considered as mtree global options,
  and are meant to alter mtree output format (like original mtree(8) -S, -n,
  -C, ...) flags.
- options without the "mtree-" prefix are keywords (keys passed as parameters
  to -k, -K or -R for mtree(8)). They control the keywords used to print
  information about the files checked via the mtree specification.

XXX I decided not to use a different support format declaration for these
(like "mtree-classic"). mtree(8) can allow "complicated" combinations like
"sort the entries, do not output comments but enable depth indentation".
Add the FreeBSD and NetBSD flavors to this and the output has to be
tweaked even further.

I can reconsider this design choice later, but for now I prefer a clear
distinction between "mtree options" and "mtree keywords."
First implementation of mtree(8) via libarchive.

It will build a working executable than can (for now) output a "classic"
mtree spec. The following parameters are currently implemented:
 -f (but comparison between two specs is currently disabled);
 -n (turn off classic output by removing comments);
 -k, -K and -R (keywords manipulation);
 -p (chdir() for a specific path (instead of '.');
 -x (do not traverse mounts).

All the others are accepted but not implemented. However all possible
combinations are checked.

XXX the next step is to qualify the differencies between libarchive's
RB tree for path traversal with the one used for legacy mtree(8) which is
fts(3) with a custom compare function (orders files first by strcmp(...)
their names, then come directories).
Hook mtree to libarchive build.