libc_block: enable and fix warnings
fs run: fix Qemu ATAPI compatibility test
Follow-follow-up fix for "hw: basic support..."
os: dissolve contexts in Packet_stream

Fixes #1003.
ahci: missing shift when setting FIS adress

Fixes #997.
block: support for block number >32 bit (Fix #968)
block: extend generic driver API (Ref #750)

* allow to handle a maximum of packets in parallel
  that fits free slots in the ack queue
* stop processing packets, when the driver can't handle
  more requests in parallel, and resume packet handling,
  when the driver is ready again
packet stream: clean range allocator in destructor
block: extend block session test framework
part_blk: re-design to work event driven

Fix #750
part_blk: increase ep stack size and bulk buffer

* Increase entrypoint stack size for part_blk server,
  since it crashes on 64 bit
* Consider packet alignment in bulk buffer size calculation of test-blk-cli
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.

ref #989
hw: replace unsynchronized by unmanaged singleton

ref #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.

ref #989
hw: use core-PD class to prevent singleton clashes

ref #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.

ref #989
run: test for main thread_base object

ref #989
base: avoid compiler warning in Thread::stack_top

The statement _context->stack[-1] triggered the compiler warning
'array subscript is below array bounds'.

ref #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.

ref #989
hw: fix bug in Kernel::Thread::_print_activity

ref #989