corruption if a packet was received at the wrong time.
The maca_thread now just PAUSEs and checks rx_head instead of waiting
for a data event to be posted.
maca_on() resets the maca and phy, takes a long time, and clobbers any
packet that is currently being transmitted or received. It doesn't
belong in prepare and was the source of a lot of latency and bad
packet transmissions.
Make sure the maca is on somewhere else.
that the transmit starts. Or if the maca is in a reception cycle,
advance the softclock timeout to now so that transmission starts as
soon as possible (immediately if a packet isn't being received or
right after reception finishes).