Update AbstractNodeQueue.java to avoid redundant reads of head in peekNode

Avoid spinning on head when a peek/poll observes a null next but the queue is not empty.
:-) If we could get to a white board, sure. I'm a bit lame with drawing tools, let me try to convince you with text first.
Poll and peek both assume that a node found through tail.next() has a non-null value. This assumption is not challenged by the old or the new implementation.
Now poll() does this:
        final Node<T> next = peekNode(); // <- T0
        if (next == null) return null;
        else {
            final T ret = next.value;
            next.value = null; // <- T2
            Unsafe.instance.putOrderedObject(this, tailOffset, next);
            return ret;
        }
While peek does this:
        final Node<T> n = peekNode(); // <- T1
        return (n != null) ? n.value : null;// <- T3
At T1 n is not null, but by T3 n.value is null.