Reduce latency in network processing

Currently there is a 100ms sleep in the message processing thread that adds delay to processing messages.

This patch skips the sleep when there is additional work to do.

Additionally ProcessMessages & ProcessGetData are modified such that their maximum run time is reduced; this improves the average latency peers see when there is high load. (This has a significant impact on high latency networks during initial block synchronization).