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.
isEmpty() should be changed to be:

    return ((Node<T>)Unsafe.instance.getObjectVolatile(this, tailOffset)) == get();

But that is perhaps TBD in another PR.