TaskScheduler.add() no longer throws if date is in the past (closes #45)

TaskScheduler.add() no longer throws if date is in the past. Instead, the
task will be executed as soon as possible, asynchronously. The previous
behavior was a source of race conditions.
Merge pull request #53 from cdumez/fix_add_race_condition

TaskScheduler.add() no longer throws if date is in the past (closes #45)