run: smarter timeouts for spawn_serial

Now the boot timeout is the test timeout divided by the minimum amount of boot
trials. The time that is consumed by boot trials is subtracted from the test
timeout.

fix #994
usb block: use generic block driver API (Fix #966)
Follow-up fix for "hw: basic support for ODROID"
framebuffer test: acpi_drv and pci_device_pd
acpi: print RMRR region (not just base)
vesa: explicitly request VBE 2.0 information

We also skip any non-direct-color modes now.
foc: evaluate run_opt target for uboot link

Unify handling as base-hw does and enables us to use uBoot image for foc_panda.
noux: adjust timeouts for diverse platforms

Issue #996
989 base: provide template for unmanaged singletons

An unmanaged singleton is a singleton object that isn't
constructed or destructed implicitly through the C++ runtime
enviroment. The new header provides a helper to create such objects
and is located in src/base/include.
989 hw: replace unsynchronized by unmanaged singleton
989 base: natural default align in unmanaged singleton

I have no idea where the previous default alignment = 2 in the unsynchronized
singleton came from but as at least the Arndale IC-driver in base-hw needs an
alignment of 4 = address width, unmanaged singleton now uses sizeof(addr_t)
as default alignment.
989 hw: use core-PD class to prevent singleton clashes
989 hw: communicate UTCB dataspace through start info

To remap its UTCB to its context area later, a main thread needs
to know the according dataspace capability. This is done through
the start-info it receives from its creator at startup.
989 run: test for main thread_base object
989 base: avoid compiler warning in Thread::stack_top

The statement _context->stack[-1] triggered the compiler warning
'array subscript is below array bounds'.
989 hw: rename kill_* functions in bin_*

In the future bin_* means the direct destruction of a kernel object
without any blocking. kill_* in contrast is used for bringing a
kernel object such as signal contexts synchronized into a sleeping
state from where they can be destructed without the risk of getting
broken refs in userland.
989 hw: fix bug in Kernel::Thread::_print_activity
989 hw: sync signal contexts directly as user

Kernel::signal_context_kill can be used by any program to halt the processing
of a signal context synchronously to prevent broken refs when core destructs
the according kernel object. In turn, Kernel::bin_signal_context doesn't block
anymore and destructs a signal context no matter if there are unacknowledged
signals. This way, cores entrypoint doesn't depend on signal acks of a
untrustworthy client anymore.
989 hw: do not block on destruction of signal receiver

As synchronization of signal contexts is now the users business instead of
cores and the signal framework ensures that every context of a receiver gets
synchronously destructed before the destruction of the receiver itself
synchronization and thus blocking at the destruction of a kernel
receiver-object isn't necessary anymore.
989 hw: cancel unresolved faults before pager dissolve

If an RM client gets dissolved the RM server tries to first
dissolve and then destruct the according pager object. As pager objects
previously cancelled unresolved faults only in destructor the dissolve
operation blocked forever when an unresolved fault existed.
As every pager object should get dissolved before it gets destructed
(signal-context complains otherwise) no more unresolved-fault cancelling
is needed in the destructor.