tests/generated: Use #if instead of #ifdef

This patch makes the generated tests use #if instead of #ifdef, as it is more
generic and can allow for more complex expressions that will be needed in
future tests.

It also updates the existing tests to make use of it.
tests/generated: Fix pread's configuration header

This patch fixes pread's configuration header, just for aesthetical purposes
(it's not actually used at the moment).
tests/generated: Add a test for strdup()

This patch adds an auto-generated test for strdup().

Note overriding strdup() does not work on some platforms where the libc
defines it as a macro; the test accounts for that and will be skipped with a
warning in those cases.
Do not use the dummy backtrace on profiling builds

When building with PROFILE=1, the current USE_DUMMY_BACKTRACE test fails
because the compiler tries to write to /dev/null.gcno.

This patch fixes it by making it write to a local file instead, which we then
not use.

It also adds the profiling files to .gitignore while at it.
tests: Add a few basic tests

Looking at the test coverage, there were a few simple things that the existing
tests were not covering; this patch fixes some of those by adding a couple of
basic but useful tests.
utils/fiu-ctrl: Remove non-existent -l option from the documentation
libfiu: Add a tracing mode to help debugging

This patch adds two tracing printf()s that are only enabled when using
"make TRACE=1". They can be very useful for debugging issues, and the code
complexity impact is minimal.
tests: Introduce tests/utils

This patch introduces basic tests for the command-line utilities (fiu-run,
fiu-ls, fiu-ctrl).

They are not intended to cover all of libfiu's capabilities, but mostly check
remote control handling from those utilities.
bindings/python: Add a fiu_ctrl.py module

This patch adds a new Python module, fiu_ctrl.py, which implements similar
functionality to the fiu-run and fiu-ctrl shell utilities, but it can be used
from within Python to control tests.
preload/posix: Remove profile-generated files on "make clean"
preload/posix: Add a POSIX_TRACE build flag

To make it easier to turn tracing on and off in the posix profile, this patch
adds a build-time flag for it.

It's only useful for debugging.
preload/posix: Make the objects depend on codegen.h

The objects depend on codegen.h, but the Makefile doesn't know this, so
they're not rebuild after codegen.h changes.

This patch fixes that by adding the file as a dependency in Makefile.
preload/run: Add a dry-run option to fiu-run

This patch adds a new option, -n, to make fiu-run show the command line
instead of executing the program.

It can be useful when you need to run things manually (for example, under
gdb).