Remove IllegalStateException when adding duplicate dependencies from ServiceBuilder.addDependency* methods.
Refactor StartingServiceTasks and StoppingServiceTasks. Remove unnecessary task classes.
Remove DependencyFlag.OPTIONAL
Remove dependency replacement methods from AbstractDependency and subclasses.
Initial parent dependency implementation