Enable re-use of singleton, but closed IRQ session

Fix #784
ahci & exynos5: enable SSDs like OCZ Agility 3

Declare ATA device-register structure and check it with more detail.

Fasten error recovery about 9 ms.
ahci & exynos5: allow 6 Gbps port speed
ahci & exynos5: AHCI (+ part_blk) bench in l4linux
ahci & exynos5: avoid large DMA buf in AHCI bench

Normally this bench has read all data to one large buffer and
than written it back to the drive but for SATA 3 (6 Gbps) benchmarks
we would need a buffer of approximately 1.2 GB to do it this way
and reach 2 seconds bench time. Thus we use a buffer of SATA request size
and override it with every request.
part_blk: raise max packet size to 1 MiB

This is because the old packet size of 128 KiB slowed
down l4linux AHCI benchmark on arndale with large block sizes.
l4lx: raise block TX buffer size to 5 MiB

Buffer sizes lower than 5 MiB slow down the Arndale AHCI benchmark
with fast 6 Gbps SSDs and 1MiB blocks.
Use Genode's memcpy in L4Linux block driver
ahci & exynos5: compliant exceptions on creation

Use Root::Unavailable exceptions instead of driver specific ones
on session construction.
run: add TCP_MAERTS to netperf test

MAERTS is STREAM backwards and effectively lets the netserver sends the packets
to the netperf client. So, TCP_STREAM measure the receive performance of the
lwIP stack on Genode and TCP_MAERTS the send performance of the lwIP stack
on Genode.
lwip: set some reasonable default rcv buf size

lwip reports via getsockopt the size of the default size of the receive buffer
to the netperf server. lwip returns 2GB and netperf server uses this value to
allocate some buffers - which of course fails with out of memory.

Reduces the "default size" to some smaller value.

With the commit we are not forced anymore to (but still can) use specific
netperf client options regarding memory allocations of the receive buffer.
lwip: align the pbuf on 32 resp. 64 bit addresses

Minor speed improvements of ~6Mbit. Additionally a ethernet frame fits now
into one memory allocation per pbuf. Beforehand two were allocated - one being
1514 bytes and another one being 2 bytes (monitored by instrumenting copy loop
in libports/src/lib/lwip/platform/nic.cc).