Implementation of a PriorityQueue
Code still needs to be verified

See BinaryHeap.java comment for details