Relaxed fibonacci heap priority queue implementation of the Queue.
The elements of the priority queue are ordered according to their natural ordering, or by a compare_func provided at queue construction
time. A priority queue does not permit null elements and does not have bounded capacity.
This implementation provides O(1) time for offer and peek methods, and O(log n) for poll method. It is based on the algorithms described
by Boyapati Chandra Sekhar in:
"Worst Case Efficient Data Structures
for Priority Queues and Deques with Heap Order"
Boyapati Chandra Sekhar (under the guidance of Prof. C. Pandu Rangan)