Priority queue implemented using a simple list with binary search for inserts. This specific implementation is cheap in terms of memory but weak in terms of performance. See http://visualstudiomagazine.com/articles/2012/11/01/priority-queues-with-c.aspx for original implementation This specific version is adapted for Envelopes only and calculates a priority of envelope.Message
 public UnboundedPriorityMessageQueue(int initialCapacity)
 {
     _prioQueue = new ListPriorityQueue(initialCapacity);
 }