Added a PriorityQueue

Uses a heap queue to prioritize challenges.