Test for 'Parent::resource_request' interface
os: Add resource balancing-support to 'Slave'

In order to be able to dynamically balance resources of slaves, we need
to provide an accessor to the slave's RAM session and a way to issue
yield requests.
Test for yielding resources
terminal_mux: Add 'j' and 'k' keybindings
terminal_mux.run: LOG output of terminal_log

This patch tweaks the route of 'terminal_log' such that a LOG session
request of this program is directed to the parent rather to itself.
cli_monitor: Resource-balancing support

This patch introduces new commands for dynamically balancing RAM between
subsystems. The 'status' command prints a table with the RAM status of
each subsystem. The 'ram' command changes the quota or a quota limit of
a given subsystem. The quota limit can be defined to allow the on-demand
expansion of the quota. Finally, the 'yield' command can be used to
instruct a subsystem to yield a specified amount of resources.

For trying out the new commands, a so-called 'ram_eater' example has
been added to the 'terminal_mux.run' scenario. This program simulates a
subsystem with a growing demand for resources, yet with the capability
to yield resources when instructed by the parent (i.e., cli_monitor).

Besides implementing the new features, the patch splits the
implementation of 'cli_monitor' into multiple files.
nova: create sm of each thread in pager

Mainly simplification of the code and getting rid of reserved (Genode) special
cap selectors in the syscall-generic.h file.

Issue #478
nova: support requesting multiple event portals

Enables us to request the exception handler portals at once instead each
separately.

Issue #478
nova: request native ec cap via pager

Prerequisite to get rid of the base-nova special native_cap method in
cpu_session.

Vancouver/Seoul bootstrap code gets also much simpler.

Issue #478
nova: remove native_cap method from cpu_session

Remove native_cap method which caused the cpu_session implementation of the
gdb server to fail.

Issue #478
nova: fix thread in page fault and getting paused

If a thread caused a page fault and later on get be paused, then it left
the recall handler immediately due to the pause call instead of staying
in this handler.

Add some (complicated) state machine to detect and handle the case. Still not
waterproof, especially server threads may never get recalled if they never get
a IPC from the outside.

Fixes #478
nova: create sm for signalling via pager

The 'pause' call on base-nova assumes that a thread can solely block in its
associated semaphore. Main reason is that so core can unblock a thread in order
that the recall exception gets delivered and the register state can be
obtained.

Unfortunately the signal session implementation creates a semaphore, which is
unknown by the pager code. Instead create the semaphore via the pager of the
thread, so that the pager can unblock the signal thread when a pause is issued.

Issue #478
run: use gdb_monitor by autopilot

Issue #478
nova: don't wait for workers in cpu_session::pause

If a local thread is attempted to be 'pause'd via cpu_session, don't wait
until it gets into the recalled state. If the caller is lucky it is, if not
return only the stack pointer.

Avoids deadlocking of the gdb when attached to a process running a server.

Issue #478
usb: fix storage with IOMMU enabled

Fixes #747
base: make FIFO elements zero-pointer save

fix #904
hw: cancel waiting for IPC requests

ref #899
hw: kill signal receivers

ref #899
hw: fix bug in Kernel::yield_thread

ref #899
launchpad: remove '\n' from PERR message

ref #899