Refactoring.

Renamed TaskInfo field.
Removed all templates and used std::function instead.
Added std::forward to pass arguments to std::bind in executeTask.