Added a priority queue data structure for the runtime

This is a priority queue implemented using a binary heap stored in
an array. The priority queue will be used to implement wakeup events
or other types of events in the runtime.
Fix routing of smartsensor board after 2x5 change.

The arrangement of the VCC/GND planes and overlapping pads of the
sideways smartsensor conenctor interact in a strange way and
cause EAGLE to not clearly indicate the presence of airwires.

This commit repairs the airwires introduced in the 2x4 --> 2x5 change
that were hidden by this idiosyncracy of EAGLE.
Improve congested behavior of unreliable ports.

Kick out the newest packet received so far, instead of dropping the
incoming packet.

Also, when a packet times out on an unreliable port, drop it.
Merge remote-tracking branch 'upstream/master'