Rework the tx path to use the consumer and producer positions to work out
the number of slots available, and to put packets on the ring until fewer
than DWGE_NTXSEGS slots are left, making dwge_start() and dwge_txeof()
work independently. While here, only write to GMAC_TX_POLL_DEMAND once
per call to dwge_start() rather than once per packet.
Adjust the rx interrupt path to check the number of slots in use and
return slots once per interrupt.
Add interrupt and ifq barriers before taking the interface down.
With all of this done, we can mark dwge(4) mpsafe.
ok dlg@ patrick@