Made task handling part of the multitasker class itself

Signed-off-by: Irmo van den Berge <bergerkiller@gmail.com>

Not only was the execution order wrong (remaining was invalid when sent to onHandled), this change also makes it easier to pass in any type of object and handle it in the mutlitasker itself. For example, use IntVector3 as T to pass in coordinates to load, instead of creating a new runnable implementing class for it.

The old system made it impossible to properly keep track of the remaining count, so this change was needed.