Makefile: just one file per line to spot changes

This breaks the long file lines into one line per file item, so it's
easier to spot changes.  Also sorts the files alphabetically.
Sort debian install files.
Refactor FAI_ETC_DIR handling

Adds the new script library subroutines-tools for common functions
shared between various FIA tools.  This adds the get_cfdir function,
which processes the FAI_ETC_DIR env, when no config directory is set
and does some (already existing) sanity checks.
Refactor config file reading and default handling

Moves all default values for fai.conf and make-fai-nfsroot.conf
into a corresponding .defaults file.  Adds read_cfg to the
subroutines-tools, which reads config files from a directory and
includes the .defaults file.

The only exception is the FAI_ETC_DIR variable, which is handled
in the set_cfdir function.
Forward task() arguments to task and hooks.

Shifts the $taskname from the task() argument stack and forwards
the arguments to the task_* and call_hook functions.
Add poweroff and nowait FAI_FLAGS.

This allow a different handling for FAI when finishing or aborting an
installation.  The default can also be changed editing the FAI_ABORT
variable in fai.conf.

This also installs a faipoweroff symlink to faireboot, which powers off
the host instead of rebooting it.

nowait is introduced becauce reboot halts the host until enter is
pressed, so this combination allows to poweroff or reboot immediately
when finished.
sendmon: send MAC or "PXE" instead of hostname.

Currently faimond prefixes all messages with the hostname. This adds
an option to fai.conf (FAI_MONITOR_SEND_ID) to change this behavior.

Instead it can prefix the message with the MAC. As a convenience option
it can also convert the MAC to the pxelinux format (01-${MAC//:/-}).
Always install new maintainer config

Changes the default configfile handling of dpkg during update and
install procidures from "--force-confold" to "--force-confnew".

The reasoning behind this change is the problem to restore the default
configuration, if it was ever modified, e.g. by a previous FAI run.

Now the default configuration is restored, if a file was removed from
config space.
updatebase: clean apt archive cache at end.
Add additional debug to mount2dir
Log faimond messages to $LOGFILE/fai-monitord.log

Even if we can't connect to a remote faimond, log sendmon messages
to a logfile for quick review.
Revert _ifclass to old non-bash-regex version.

The new _ifclass function uses newer bash regexp compare to check
for an existing class.  As all $ROOTCMD shell calls use the NFSROOT
environment, older bash (e.g. Etch) fail on parsing the new function
syntax in the environment and error out.
Check aptitude options in updatebase.

This checks the available aptitude options in updatebase (safe-upgrade
vs. upgrade, full-upgrade vs. dist-upgrade). This is needed for Etch
update support.
Generalize task skipping via FAI_FLAGS

This allows to skip a task by setting a FAI_FLAGS "skip${taskname}".
This also drops the special handling for the faiend flag.
Add general wait${taskname} flags for tasks.

Drops the wait flag evaluation after confdir and introduce a general
wait${taskname} flag handling in the task() function.
fai-disk-info: optionally skip USB devices.
fai-deps: fix debianization and compile check.

Perl BEGIN blocks are even executed on compile, so we change it to INIT.
Also build-depend on libgraph-perl, so the compile check succeeds.
fai: use die() for errors.
fai-debconf: cleanup verbose and debug output.
fai: add debug option and variables ($d, $v).

This adds a debug option to the FAI commandline options.
Additionally it evaluates the $flag_debug and $flag_verbose
earlier in FAI setup and sets the convenience variables $v
and $d accordingly.