Refactoring:

- extract StartingServiceTasks.StartServiceTask class  to non-inner StartServiceTask class;
- extract StoppingServiceTasks.StopServiceTask class to non-inner StopServiceTask class
- rename Service<Action>Task classes to <Action>ServiceTask;
- move creation of RemoveServiceTask into RemoveServiceTask to make it compliant with Stop/StartServiceTasks signature/structure.
At TaskControllerImpl.dependentAdded, make sure that dependencyDone is notified to dependent when task is at state STATE_EXECUTE_CHILDREN_WAIT
Since ExecuteContext and RollbackContext are no longer part of the API, make those interfaces extend TaskFactory.
Implement child service support in StartContext implementors.
Update ParentDependencyTestCase and test utility classes accordingly.
At Start/StopServiceTask, handle null services appropriately.
ServiceControllerImpl.restart: initial implementation