JankyTask class for spawning new tasks

This is a class which cannot be used directly but must be derived from
(it's an abstract class) as you must provide your own 'Run()' function
which is the new task. This has not been tested due to lack of time. It
should be very very close to complete.