Partial IPv6 neighbor discovery and various performance tweaks

I added a new app apps/ipv6/nd_light that performs rudimentary address resolution for a pre-configured next-hop address. It expects IPv6 packets on its "northbound" link, adds an Ethernet header with the discovered MAC address of the next hop and sends the packet out its "southbound" interface. Packets received from "south" are sent "north" unaltered (i.e. the Ethernet header is not stripped).

This set of commits also includes a few performance boosts. I also changed the semantics of the datagram class' push() method. Headers are now pushed in the "natural" order, i.e. inner-to-outer. This implies that the buffer holding the headers grows *downwards*. This has the added benefit that now new buffer has to be allocated as long as there is room at the bottom of iovec #0.