Few clarification commits reflecting David's suggestions
 * removed useless Bit methods
 * eliminated switch statement
 * etc.
bringing back ServiceMode & DependencyFlag enum in() methods
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