HiTabMessages delivery time is now calculated by the delivery thread instead of the message handling thread.  This enables the handling messages to place each message into the recordQueue as quick as possible, enabling this thread to handle other incoming messages
Message broadcast and Disseminator tasks are now executed recursively using the timer.execute & .schedule( methods as this is much faster then using the .scheduleWithDynamicInterval() method
HiTabBundler - bundles application requests into a single HiTab request and passes the request down the stack.  A request is passed down the stack when either the queue becomes full, a specified kb of messages are waiting or a timeout occurrs
ConcurrentModificationException no longer thrown when setting the initialProbePeriod
Clock synchronisation was not working correctly due to the new clock time being calculated based upon the requestTime of a nodes request not the responseTime set by the master.  Obviosuly this prevented the clocks from being correctly synchronised.  Also the PCSynch header and data files are now inner classes of the PCSynch class
The HiTabBuffer no longer uses missing sequence numbers to block the message buffer.  This is because it can result in an infinite loop of requests and no responses, when no nodes in the cluster receives a single copy of a message broadcast. Abort messages are now issued by the originator node if a message has not been received locally after the calculated deliveryTime of the message has been expired.  Upon receiving an Abort message, a node will remove the offending message from its buffer before it is delivered.
Several classes only used by the NMC.java class have been incorporated as inner classes