Add a method to `Task` to allow runtime registration of the services that the task will use. This is intended really just to be a placeholder for some kind of API where the usage can be declared.
Remove the `requiresResource()` methods from `AbstractTask`. In particular, remove the ability to express "how much" of the resource the task will use. For now, assume that usage by each task has equal weight.