Add 'String<SIZE>' buffer type to 'util/string.h'

The new 'String' buffer type is meant to replace the manually created
character buffers that are scattered throughout Genode. It plainly holds
a null-terminated string to be stored as a member variable (e.g., a
session label) or passed as RPC argument. It is not intended to become a
string API.
Add resource-balancing support to parent interface

This is just the interface. The implementation is still missing.

Issue #887
Implement resource-balancing in parent interface
base: Unify 'Platform_env' across platforms
base/env: Implementation of 'Expanding_parent'
init: Transfer slack memory to children on demand
base: Use distinct error for ref_account mismatch
core: Don't account RAM metadata to RAM quota

The meta data for allocations should be accounted to the session quota
instead of the RAM accont managed by the session.
core: Fix off-by-one in quota check

The check was one byte too rigid. ;-)
base: Add 'Env::finalize_initialization'
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.