Handle transmissions of packets with multiple iovs correctly

Only dequeue packet if there are enough tx slots available to deal with all
iovs that constitute the packet.  This requires an extension of the link API
so that it is possible to look at the frontmost packet without also removing
it.