libports: prepare SoPlex
libports: add SoPlex mk file
libports: add soplex test
libports: fix test-soplex
libports: add scip
nic_drv: read MAC and tap device from config

E.g.:
<nic mac="12:23:34:45:56:67" tap="tap1"/>
libports: run lwip ping client and server on the same linux machine

How it works:
 - The test-ping_server and test-ping_client_lx are running simultaneously
   on the same machine (server must be started first).
 - The server run script writes the IP address into /tmp/test-ping_server.
 - The client run script reads the IP address and configures the
   client application accordingly.

How to setup the linux host:
 - add tap1 and tap2 devices:
    ip tuntap add dev tap1 mode tap user <user>
    ip tuntap add dev tap2 mode tap user <user>
 - create a network bridge:
    brctl addbr mybridge
 - add tap devices to the bridge
    brctl addif mybridge tap1
    brctl addif mybridge tap2
 - start DHCP server (e.g. dnsmasq) on the bridge interface
base: fix bug in String::valid()

String::valid() does not check whether _length is zero.
Consequently, this leads to _buf[-1] being evaluated.