This patch makes the IO Task handling a subclass of Task and makes the special code in Task go away.
Ups, forget to add IoTask class. Fixed now.
v3 - Set the current IoTask in the belonging buffer. This is a preparation for the later abolishment of runAfterIoTask(). As only one IoTask can be running for a buffer (this is already enforced) the assert must never trigger!
v4 - rebased against trunk
Looks good to me.
Applied slightly modified.