A heap-based priority queue in Objective-C