block: cache between one client and one device

This block cache component acts as a block device for a single client.
It uses fixed 4K blocks as caching granularity, thereby implicitly reads
ahead whenever a client requests lesser amount of blocks. Currently,
it only supports a least-recently-used replacement policy.

Fixes #113
block: prevent from dereferencing invalid pointers

Until now, block drivers had to deal with a pointer to the client
session component, e.g.: to acknowledge block packets already processed.
When a session was closed, the driver object wasn't informed explicitly,
which leads to defensive programming, or lastly to a race-condition in
test-blk-srv. To prevent from this class of errors, the pointer is now
private to the generic block driver base class, and not accessible to
the concrete driver implementation. Moreover, the driver gets explicitly
informed when a session got invalidated.

Ref #113
hw: ease usage of the kernel log

ref #989
hw: use descriptive bool value names in ipc.cc

ref #989
hw: fix bug in IPC message-size calculation

ref #989
base: rename reload_parent_cap.cc

ref #989
base: provide env_context_area_rm_connection()

ref #989
base: provide helper class 'Placeable'

ref #989
base: provide helper class 'Reinitializable'

ref #989
noux: Noux_connection::context_area_rm_session()

This enables a forked process to update the capability of its
context area RM session.

ref #989
libc_noux & 64bit: fix printf format-warning

Normally for intptr_t the printf format PRIiPTR should be used. As Genode
printf doens't support this format we cast it to long int (intptr_t is int
for 32 bit and long int for 64 bit).

ref #989
noux & 64bit: fix printf format-warning

ref #989
base: make Expanding_parent_client reinitializable

This is needed to reinitialize Platform_env in forked processes.

ref #989
base: make Rm_connection reinitializable

This is needed to reinitialize Platform_env in a forked process later.

ref #989
foc: make cap_map and cap_alloc reinitializable

This is needed to reinitialize Platform_env in a forked process later.

ref #989
nova: make cap_map reinitializable

This is needed to reinitialize Platform_env in a forked process later.

ref #989
base: setup thread object for main thread in CRT0

For a main thread a thread object is created by the CRT0 before _main gets
called so that _main can already run in a generic environment that, e.g.,
catches stack overflows as a page-fault instead of corrupting the BSS.
Additionally dynamic programs have only one CRT0 - the one of the LDSO -
which does the initialization for both LDSO and program.

ref #989
base: ease Platform_env::Resources

It is unnecessary to remember session caps in a Resources object as the
contained connections can cast implicitely to the appropriate caps.

ref #989
noux_fork: raise MAX_COUNT to 1000

To see the output of both, forker and fork, we must give the test
more time on OKL4 as fork seems to be not so fast with this kernel.

ref #989
base: generic implementation of Context_allocator

ref #989