Review and refactor starting/stopping tasks:
- remove SetServiceUp/Down task
- fix bugs uncovered by those changes (the tasks started running faster and new race conditions were uncovered)
- and add transitional methods to ServiceController
Add more assertions to RollbackServiceStateTestCase.
Fix typo error in test case name
Remove runningDependents from ServiceController and related methods/tasks.

This field is not needed given that a service's stop depends on its dependents' stop tasks.
Delete ServiceControllerImpl.transition method (invoke transactionalInfo.transition directly instead).
Delete ServiceControllerImpl.getState() method, given that this method was being invoked only internally by a single caller.
Remove newTask from Start/Stop context and unify those classes with simple start/stop context
(the only difference between simple contexts and standard ones is that those lacked newTask methods)
Correct access of Starting/StoppingServiceTasks class members
Use StopContext and StartContext when reverting start and stop, respectivelly.
Fix Start/StopService tasks: the tasks must be executed and reverted regardless of the interfaces implemented by the service.

Otherwise, we risk not starting/stopping a service. Notice this action cannot take place outside of a task scope because we need support
to both automatic rollback on revertion and also to task dependency between dependent and dependency start. The same goes for stop.
Remove Cancellable from WorkContext, hence removing its methods from StartContext and StopContext.
Refactoring: remove unneeded TaskFactory parameter from ServiceControllerImpl.setServiceUp.

Also: delete the no longer needed overloaded version of the same method: now that we have a start context on
revert stop, failures are taken care automatically by user's service.