Fix pop_front tail-update.

When pop_front finds that the tail points at the removed node, it
should change to the tail to m_head, not to its successor, because
the successor can already get dequeued by a next pop_front running
in parallel.