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.
Revert "tabify here documents"

This reverts commit efd270c466cf6294f1ed9adf446e3909630c7bda.

Conflicts:
	bin/fai-make-nfsroot
Don't use tab stripping in here docs.

Normalizes here doc usage, based on the tabe => space converstion.

1. Don't use tab stripping -EOF.
2. Strip tabs from all users, even examples.
3. Unindent all missed cases of the conversation.
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//:/-}).
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: use die() for errors.
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.
Always use $flag_verbose and $flag_debug.

Changes $verbose and $debug users to use the $flag_* version, as
$verbose and $debug were already deprecated.
ainsl: fix appending to file w/o trailing newline.

If the file doesn't end with a newline and is not empty, a newline
is appended before the real line is added.
s-s: some partitions don't have a mountpoint.

Check for existing mountpoint hash entry before accessing it in
the '/boot' check, e. g. for extended partitions.
s-s: respect alignment for logical partion sizes.

There is this nice comment in the partition size calculation:

> logical partitions require the space for the EPBR to be left
> out; in fact, even alignment constraints would have to be considered
                                           ^^^^^

Nice try - this patch actually consideres the alignment and fixes
a setup-storage bug, which fails for the case, where a fixed
logical partition was after a ranged logical one, like:

> disk_config disk1 fstabkey:uuid align-at:1048576B bootable:1
> primary /boot        500          ext2  rw
> logical /            3000-100000  ext3  rw
> logical swap         2048         swap  rw

The partition table size is always caculated to large for a disk in
the range, e.g 80GB (80026361856B):

> Disk /dev/sda is too small - at least 80027320320 bytes are required.
Add waithooks flag to wait after each hook.

Same as waittasks, waithooks waits for user interaction after
each hook.
s-s: Do not stop VG before wiping it.

This could close Debian bug #676882.
Call fai-deps in defclass task.

As fai-deps as been included in FAI (Debian Bug #498412).
fai-deps should be called from task_defclass() as suggested.
Use task finish for softupdate cleanup.

We need the finish task to cleanup the FAI diversions.
Umounting is already handled correctly in task_finish, so
softupdate should be fine to use this task.
fai-do-scripts: optionally exit on first error.

Adds the option -e to exit on first script error.