try_dequeue should return early if queue is empty

I'm not 100% sure that this is the correct behavior here, however I
noticed segfaults in my code when calling try_dequeue from a
newly-initialized queue. In such cases, frontBlock.load() will at
least return nullptr, and attempting to call any methods on such a
pointer will result in segfaults.