Release kyua-0.10
Refer to the 'kyua' package in FreeBSD/NetBSD

The pkgsrc and ports systems have been updated to 0.10, so they now
only provide a 'kyua' package instead of 'kyua-cli'.  Document this
and tell users to install 'kyua' directly.

The Fedora package for 'kyua' has been submitted for review but it is
not ready yet for being replaced here.
Post-release revision bump
Reset the value of TMPDIR

Set TMPDIR to the test case's work directory when running the test case.
If the test case happens to use the mktemp(3) family of functions (due
to misunderstandings on how Kyua works or due to the reuse of legacy
test code), we don't want it to easily escape the automanaged work
directory.

Fixes #102.
Prefix manpage names with kyua

For all the manpages that had a name not prefixed with kyua, add the
prefix.  This is important to prevent confusion in, for example, the
"kyua-test" manpage as it would previously display its name as test
(which could be confused with test(1)).

Fixes #83.
Fix crash when Kyuafile does not define test_suite

When defining a test program in a Kyuafile that had not yet specified a
test suite, we'd crash due to an attempt to access an undefined optional
variable.  Protect against this correctly.

Fixes #111.
Use tmpfs instead of md in FreeBSD

This prevents leaking md devices automatically spawned by mdmfs, which we
do not explicitly clean.  It's just easier to rely on tmpfs that attempt
to add cleanup routines.

Fixes #105.
Run tests as root with unprivileged_user set

Add a new configuration in the Travis CI runs to ensure that running our
own tests as root works properly when unprivileged_user is set.
Properly drop group privileges

As a side-effect, this fixes testers/run_test:fork_wait__unprivileged_group
which was properly capturing this failure.

Fixes #109.
Fix opening of log files with unprivileged_user

When running with unprivileged_user set, opening log files using the
/dev/stdout and /dev/stderr names fails because these special files
are not owned by the user the privileges were dropped to.

To resolve this, apply the same indirection we have in the CLI when
opening output files for reports: capture the /dev/stdout and
/dev/stderr special names and redirect them to the already-open
std::cout and std::cerr streams.

Fixes a bunch of test failures when running the Kyua test suite as
root with unprivileged_user is set.
Fix test broken by the TMPDIR change

The change in 6ea3e39a100ca3ca2f8c36ea30e6c8e60a50ef70 to make TMPDIR
point to the work directory of the test case broke the
run_test_case__atf__required_user__atf__unprivileged__atf__drop test
in engine/test_case_test.

The breakage came because the unprivileged test case spawned by this
test case had its work directory within the work directory of the
container test case, which in turn had its work directory set to
root with 0700 permissions.  This prevented the unprivileged test
case from creating its results file as absolute paths could not be
resolved.

Fix this by weakening the permissions of the first work directory.
Merge branch 'unprivileged-user-fixes'

Fix privilege dropping functionality and a bunch of broken tests when
running the Kyua test suite as root with unprivileged_user properly
set.
Clarify what the 'about' command prints

Change the synopsis of the 'about' command to mention that it shows details
on authors, license, and version.
Print a header with the program version in "help"

Change "help" to output a heading line with the version number of Kyua
in it.
Merge branch 'issue-110'

Fixes #110.
Move getcwd tests to m4/fs.m4

Add a new KYUA_FS_GETCWD_DYN macro to m4/fs.m4 to include the already-
existing test to check if getcwd(3) can dynamically allocate memory.
Cache the result of KYUA_FS_GETCWD_DYN

This is to support cross-compilation.

Fixes #72.
Simplify dependencies in flags

Rely on the transitive dependencies defined by our <MODULE>_{CFLAGS,LIBS}
variables when defining the flags for all test programs.  This is simpler
to manage.
Introduce the model module (and move test_results)

The new 'model' top-level module is intended to contain the data model
of Kyua: that is, the in-memory representation of the concepts related
to a test suite and its results.

The classes in this module are intended to be well-defined, simple data
containers with a direct mapping to their on-disk representation in the
store.  Stateful instantiation of the classes (as in: lazily loading the
test cases of an ATF-based test program) should happen in the engine
module.

To get the module started, this change moves the test_result class out
of engine and puts it in store.  The chunk of this module involved in
parsing the output of the testers (something that is not part of the
data model) remains in the engine.

As a side-effect, transitioning all the data types to the model will
allow us to break the interdependency between the store and the engine
(which is just a minor benefit).
Move metadata and metadata_builder to the model

These two classes are pure data types that belong in the model.  Split out
the actual checking of requirements from the metadata module into its own
module that remains in the engine.