libports: Expat

This patch adds the "Expat" XML parser library to libports.

Fixes #245.
Catch 'File_system::Lookup_failed' exception

In 'Fs_file_system::open()' the call of '_fs.dir()' can throw a
'File_system::Lookup_failed' exception, which gets explicitly caught
with this patch.

Fixes #246.
Bunch of compiler warning fixes, issue #234
Use NOVA microkernel from github, add 64bit

Use git to get recent kernels from github. Adjust NOVA patch to compile
with recent github version. Patch and use makefile of NOVA microkernel
to avoid duplicated (and outdated) makefile in Genode

Furthermore, this patch adds support for using NOVA on x86_64. The
generic part of the syscall bindings has been moved to
'base-nova/include/nova/syscall-generic.h'. The 32/64-bit specific
parts are located at 'base-nova/include/32bit/nova/syscalls.h' and
'base-nova/include/64bit/nova/syscalls.h' respectively.

On x86_64, the run environment boots qemu using the Pulsar boot loader
because GRUB legacy does not support booting 64bit ELF executables.

In addition to the NOVA-specific changes in base-nova, this patch
rectifies compile-time warnings or build errors in the 'ports' and
'libports' repositories that are related to NOVA x86_64 (i.e., Vancouver
builds for 32bit only and needed an adaptation to NOVAs changed
bindings)

Fixes #233, fixes #234
NOVA: Improve stability of process destruction

The UTCB of the thread cleaning up thread objects has been unmapped.
However the UTCB of the destroyed thread must be unmapped.

Objects must explicitly be made unreachable before cleaning up. The
server and pager objects must be unreachable before they can be freed.
Both object types are threads. Revoking the thread(EC) cap on NOVA
doesn't mean that the thread stops executing. All portals pointing to a
thread are still reachable by clients even if the last EC cap is gone in
user land. So it must be taken care that no portals are pointing anymore
to a thread when the associated objects are getting destroyed. This
commit handles this.

Additionally, even if the last portal is gone - there can be still an
ongoing request handled by such server/pager object/threads. For each
such object an additional portal is created. This object is called
'cleanup portal' and is only local to the object. After all portals are
revoked the cleanup portal is called. When the call returns we know that
nobody is anymore handled by the object since all remotely available
portals are gone.

Fixes #20
Structures must be dense packed, issue #248

Take care that utcb, hip, crd structure are dense packed by compiler.
Msg_words are 16 bit, adjust bit mask.
Check that typed item fits on UTCB, issue #248

Check that there is enough room for a typed item on the
UTCB. Otherwise deny to add the item and return false.
Enable explicitly a return unused warning to get the right
attention.
Establish mappings during reply, #248

Caller thread sends echo thread mapping information. Echo thread
establish during reply the mappings.

Fixes #248
chroot_loader: Fix run script for 64bit environment

The /lib64 path is required here to allow execution of 64bit binaries.

Here is an example-ldd call:

$ ldd /bin/ls
	linux-vdso.so.1 =>  (0x00007fffdedff000)
	libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f4ae207d000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4ae1e75000)
	libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007f4ae1c6c000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4ae18af000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4ae16ab000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f4ae22bd000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4ae148d000)
	libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007f4ae1288000)

Fixes #249
linux: Hardening compilation support for 64bit environment

Without this patch the compilation failed with:

/usr/bin/ld: main.o: relocation R_X86_64_32S against `vtable for Genode::Dataspace' can not be used when making a shared object; recompile with -fPIC
main.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[6]: *** [init] Error 1

For this patch the use of the hardening tool chain must be indicated
using the "hardening_tool_chain" SPECS entry within the file
<build>/etc/specs.conf

Fixes #79
Fix us layout

The right bracket used the wrong character and the "pipe" was missing.

Fixes #241.
Add noux-pkg/lynx
Add explicit handling of sgr0 and certain 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).
Cleanup terminal colors (old ulgy ANSI colors)
Add symlink from ncurses.h to curses.h

Serveral programms want to include ncurses.h rather than curses.h.
To keep them happy, we add simply add a symlink.
liports: use libc's own getaddrinfo() implemantion

Since we are using the libc's *addrinfo() anyway, we comment the plugin
calls out.
libports: use libc's rpc framework

Certain rpc headers are needed for compiling getaddrinfo.c. Unfortunatly
that means we have to generate _a few_ header files which we do when we
prepare the libc.
Fix building noux-pkg/lynx on pistachio

Story short:  --disable-rpath-hack.

Long story: When building on pistachio_x86 $(LDFLAGS) contains
'-L[...]/l4/lib' which will be transformed by autoconf to '-rpath
[...]/l4/lib'. Now the problem at hand is that we pretend to be FreeBSD
when we are actually not. So autoconf assumes it is valid to use '-path'
when it is actually not.
Add recvfrom() systemcall to noux