Only write UART if transmitter-hold register empty

The line-status register has two relevant status bits - transmitter-hold
register empty and data-hold register empty - from which only the THR is
relevant as it signals new character can be written to the device.

Fixes #281
part_blk: Improve multiple client support

Increase size of block session backing store so it can handle maximum supported
packet size. Synchronize client threads during packet allocation.

Fixes #276
Add missing unwind code to cxx lib

This patch adds support for the '_Unwind_Complete()' and
'_Unwind_DeleteException()' functions in the cxx lib.

Fixes #275.
libc_ffat: enhance 'lseek()' support

This patch adds support for the 'SEEK_CUR' and 'SEEK_END' values of the
'whence' argument of the 'lseek()' function..

Fixes #277.
libc: implement 'pread()' and 'pwrite()'

This patch implements the 'pread()' and 'pwrite()' functions in the libc.

A lock guard prevents the parallel execution of either or both functions.

Fixes #278.
libc: implement 'readv()'

This patch implements the 'readv()' function in the libc.

A lock guard prevents the parallel execution of either or both of the
'readv()' and 'writev()' functions.

Fixes #279.
GDB for Noux

With this patch the 'GNU Project Debugger' (GDB) can be built for Noux.

The included run script connects GDB and GDB monitor via a cross-link
terminal and allows interactive source-level debugging of the GDB monitor
test application on Genode.

Fixes #280.
NOVA: Memory descriptor parsing

Be bit more robust.
* Don't use addresses and sizes larger than
  32 bit address boundaries.
* Don't take modules of size 0, at address 0 and if aux is 0.
  (Already seen on machines in the University ...)

Fixes #269
NOVA: call kill_thread of cpu_session

If a thread has been deleted the thread object at the cpu_session was never
freed which caused the cpu_session quota to be exhausted as reported in
issue #150.

Fixes #150
NOVA: Vancouver - establish recall portal

Fixes #283
Don't loop forever if upgrade of a donation failed.

The code intended to stop after the first failed attempt,
however the bool variable to control this was reseted
inside the loop and so it endless loops.

Fixes #51
USB: Test and fix errors on x86 boxes

Added support for more than one UHCI controller. Make sure the 'PIRQ' bit in the
legacy support register (PCI config space) of the UHCI controller is enabled and
also that the 'Trap on IRQ' bit is disabled. Fix offset bug in PCI-config space
emulation for Linux.

Fixes #282
Terminal: cleanup terminal colors

Though the initial commit contains nicer looking color definitions
it is easier to spot wrong colors when using a program that uses
ncurses like for example lynx.

Fixes #284.
Noux: fix sendto(), set args before each syscall

Set addrlen and dest_addr explicitly before each system call.

Fixes #287.
Noux: fix send(), set fd before each syscall

The fd has to be set before each syscall.

Fixes #288.
Noux: fix missing mode propagation

When opening a new file, a new Fs_vfs_handle is created but with the
initial mode set to 0 which is not expected by functions like fdopen()
that check if the original flags given to the open() call match the
returned ones on the used fd.

Fixes #289.
Noux: add recvfrom()

Add SYSTEMCALL_RECVFROM to noux/net and the corresponding libc function.

Fixes #290.
libports: fix openssl issues and update to 1.0.1c

libcrypto provides certain optimized assembler functions which
unfortunatly are non-pic. Therefore this asm code is removed
and libcrypto is build with -DOPENSSL_NO_ASM.
Because the asm code is not needed anymore, its generation is
also removed from openssl.mk.

import-libssl.mk was also added because it is essential for building
programs which depend on libssl.

Fixes #291.
Fixes #294.
libports: lwip change SOL_SOCKET definition

Our FreeBSD libc based libc defines SOL_SOCKET as 0xffff. We change
lwip's definition from 0xfff to match ours. This prevents us from
converting the level when we call {g,s}etsockopt.

Fixes #292.
Terminal: add explicit handling of sgr0 + sgr seq

sgr0 is currently implemented as a wrapper of sgr(0) which
seems to work fine.

For now we accept but ignore certain sgr sequences like for
example [0;10;1m which is generated by lynx even when using
TERM=linux (I am not sure yet if that's actually valid at all).