WIP: Change DeviceAdapterAlgorithm::Schedule accept and pass arguments
Previously, if you wanted to schedule a functor to pass arguments, the only way to do it was to put the arguments into the state of the functor, which could be a pain. Now, in addition to the functor itself and a scheduling range, Schedule also accepts an arbitrary number of objects. These objects are passed to the functor when each instance is executed.
Previously, there was also a special form of creating "Task" objects that held the state of a worklet and the Invocation it needed to execute. Now that Schedule can pass parameters, the Invocation can easily be passed using command line arguments, so none of that special code is necessary and has been ripped out.