Propagate cancel to chained task even if source task is completed

Currently a chained task created when the source of a chain is
completed would not get cancelled if the source for some reason
get cancelled even if it previously was completed.

This change solve this by adding the chained task as a child task
of the chain task.
Add helper class methods for creating delayed tasks

Add +[SPTask delay:completeValue:]
Add +[SPTask delay:]
Also refactor code to use them.
Use better variable names in cancelled completed test
Merge pull request #2 from wader/cancel_chained_completed

Propagate cancel to chained task even if source task is completed