Stop using atf-version for the pkg-config tests

Add a couple of helper binaries whose purpose is to just print the
value of PACKAGE_VERSION.  Use these from the pkg-config tests to
query the built-in version value and compare it to the one provided
by the pkg-config files.

The reason I am adding two helper binaries is to avoid the nuisance
of having to cope with the FreeBSD test suite layout.  If we
attempted to use the version_helper binary of atf-c from the atf-c++
tests, we would have problems finding it.
Move the parser module to a new utils library

Start decoupling code needed only by the tools from the libatf-c++
library by moving it to a new static-only utils library.

The goal is to make the tools not depend on libatf-c++ so that the
library can change at will without caring about the deprecated code.
The reason for this is that NetBSD will keep a code of the old
tools once we delete them and we don't want to break that copy by
mistake just by modifying the base libraries.

This change just adds the new utils library and moves the parser
module into it.  More will move later.
Move atf-c++/detail/expand to atf-run

The expand module is only needed by atf-run, so move it accordingly.
Remove -h support from atf-sh and atf-check

This is to allow removing the complex application class and all of its
logic to wrap text on screen boundaries later on.
Move all tools-related code to a tools subdir

For simplicity reasons, contain all tools-related code into a tools
subdirectory.  This includes both helper code as well as the code of
the tools themselves.

This goes against the previous attempt of moving shared code into an
utils subdirectory and building a static library in it to be used by
the various tools.  Such approach was becoming too complex and hard
to handle.

The goal is to just dump any code in here, possibly duplicating what
still exists in atf-c/atf-c++, because we want this directory to not
depend on the shared atf libraries.  The tools directory will be
deleted on the next release anyway.
Remove -I flags to source directories

They appear to all be unnecessary.  If they aren't, we should be using
includes relative to the top-level directory of the source tree instead.
Decouple application module between tools and libs

Duplicate the application module from the atf-c++ library into the
tools directory so that we can simplify the version in atf-c++ by
removing everything not needed by the libraries.  In particular,
this really kills all useless screen wrapping for atf-sh and
atf-check which really is not a big deal.

As a result of this, we can also move the ui module altogether from
the libraries into the tools only.
Rename tools/config to tools/config_file

There is another config module in atf-c++/detail and the two would
conflict with the decoupling of the tools from the libraries.
Decouple config module between tools and libs

Duplicate the config module from the atf-c++ library into the tools
directory.  We will simplify the version in the libraries later, but
we first need to also decouple this copy from atf-c, which will
happen separately.
Decouple tools/config form atf-c/config.

Make tools/config a standalone module that does not require the
functionality of its counterpart in atf-c.

While doing so, drop unused variables exposed by atf-c.
Put all tools-related code in a tools namespace

Make sure to prevent name collisions between symbols defined in tools
and symbols still defined in atf-c++ by splitting the tools code into
its own namespace.

This won't be a problem once the tools don't link to atf-c++, but
while they do, we get conflicts that cause strange (obviously) issues
at runtime.  In particular, the application_test was broken and is
fixed herein.
Remove atf-c++/noncopyable
Decouple env module between tools and libs

Duplicate the env module from the atf-c++ library into the tools
directory and also decouple it from its dependency on the atf-c
implementation.
Decouple exceptions module between tools and libs

Duplicate the exceptions module from the atf-c++ library into the tools
directory.  While doing so, decouple the new version from its atf-c
implementation and remove unused code on both copies.
Stop using atf-c++/sanity in tools

Just make it simple and rely on assert(3) and abort(3).
Make tools tests include atf-c++.hpp only

Do not include internal header files form atf-c++ in tools tests.
Instead, just include the public atf-c++.hpp file.
Decouple auto_array module between tools and libs

Just duplicate the auto_array code between atf-c++ and tools so that
the tools do not have to rely on the version for the libraries.
Decouple text module between tools and libs

Duplicate the text module from the atf-c++ library into the tools
directory.  While doing so, also decouple the latter from the
corresponding module in atf-c.
Decouple process module between tools and libs

Duplicate the process module from the atf-c++ library into the tools
directory.  We will simplify the version in the libraries later, but
we first need to also decouple this copy from atf-c, which will
happen separately.
Decouple tools/process from atf-c/process

Make tools/process a standalone module that does not require the
functionality of its counterpart in atf-c.