Two changes to improve inter-thread message-transmission performance:
1. Eliminate "msg_list_t" type and implement a fifo abstraction that
is powerful enough to support the previous applications of message
lists. This eliminates the calls to malloc and free that were
needed to build the lists, and replaces them by an aggregate,
amortized cost.
2. When transmitting a message for which a receiving thread is
waiting, call DosSleep to give up the rest of the transmitting
thread's time slice, so that the receiving thread will run as soon
as possible.