PriorityMailbox

* Contains a new generic mailbox base `Mailbox<TSys,TUser>` which can consume different kinds of message queues
* Contains `UnboundedPriorityMailbox` base class that can be used to create custom priority mailboxes
* Contains `MessageQueue` and related semantics

Related to #299 and #301 
is there a possibility that under a heavy load this section of code could live-lock? i.e. never leave the while loop?