Add sanity check to AVL tree, fix #597
Turn 'Timer::Session' into asynchronous interface

The 'Timer::Session::msleep' function is one of the last occurrences of
long-blocking RPC calls. Synchronous blocking RPC interfaces turned out
to be constant source of trouble and code complexity. I.e., a timer
client that also wants to respond to non-timer events was forced to be a
multi-threaded process. This patch replaces the blocking 'msleep' call
by a mechanism for programming timeouts and receiving wakeup signals in
an asynchronous fashion. Thereby signals originating from the timer can
be handled along with signals from other signal sources by a single
thread.

The changed interface has been tested on Linux, L4/Fiasco, OKL4, NOVA,
L4ka::Pistachio, Codezero, Fiasco.OC, and hw_pbxa9. Furthermore, this
patch adds the timer test to autopilot.

Fixes #1
timer: Build platform-specific parts as lib

By using the build system's library-selection mechanism instead of many
timer targets with different 'REQUIRES' declarations, this patch reduces
the noise of the build system. For all platforms, the target at
'os/src/drivers/timer' is built. The target, in turn, depends on a
'timer' library, which is platform-specific. The various library
description files are located under 'os/lib/mk/<platform>'. The common
bits are contained in 'os/lib/mk/timer.inc'.
Adaptation to Timer::Session change
Turn 'platform_env.h' into a private header

This patch removes 'platform_env.h' from the public API headers because
this header was not part of the API anyway.
Remove 'Native_lock' type from 'native_types.h'
Unify 'ipc.h' and 'ipc_generic.h' across platforms

The distinction between 'ipc.h' and 'ipc_generic.h' is no more. The only
use case for platform-specific extensions of the IPC support was the
marshalling of capabilities. However, this case is accommodated by a
function interface ('_marshal_capability', '_unmarshal_capability'). By
moving the implementation of these functions from the headers into the
respective ipc libraries, we can abandon the platform-specific 'ipc.h'
headers.
pistachio: Remove dead code
base-hw: Adaptation to signal API change

This patch is an interim fix for building base-hw until the signal
implementation is revisited on this platform.
xvfb: Adaptation to timer and framebuffer changes
base-host: Build fixes
Increase timeout of signal.run test
moon.run: Increase quota of 'test-moon'

With the use of the new timer interface, each timer client uses signals.
Hence, programs that have not used signals before will consume slightly
more quota. This is the case for the moon test (triggered on foc_x64_64
only).