Removes and returns the first element of this queue.
The queue must not be empty when this method is called.
E removeFirst() {
  _DoubleLinkedQueueEntry<E> firstEntry = _sentinel._nextLink;
  E result = firstEntry._remove();
  _elementCount--;
  return result;
}