Optimizing imports
 * removing unused ones
 * eliminating wildcards
 * ensuring alphabetical order
fixing license mix issue - we're using Apache one
moving Version class to _private package
resuscitating UNREQUIRED flag
Using bit flags instead of DependencyFlag array
Add a problem report when dependency cycle is detected.
Add Service log messages to service lifecycle whenever appliable.
Add a basic test for parent dependencies and fix bugs found in ParentDependency
CheckDependencyCycleTask.checkDependencyCyle must use ServiceContext to create tasks, and not the Transaction
At ProblemReport.addProblem, update maxSeverityLevel if new severity is larger than current maxSeverity value
Reimplement unrequired/required feature. Make SimpleDependency validate only if not unrequired.
Also, check only for dependency missing for now.
Fix bug at StartingServiceTasks.create: taskDependencies parameter must be always be taken into account
Remove anti features from dependencies: there is no need for satisfied field, dependency available notifications with up parameter, and related code features.
At ServiceController removal, make remove task dependent on completeTransitionTask.
Do not invoke stop on failed services.
At SimpleDependency, only add demand after service has been installed. Otherwise, we risk demanding a registry for a dependency that won't be installed.
Force rollback of transactions with validation problems. Update tests.
there's just one terminate listener for both commit() & rollback() methods
SimpleDependency + AbstractDependency = DependencyImpl
Fix race condition where a transactional object is already locked but writeLocked has not been invoked yet. With multiple threads attempting to lockWrite at the same moment, the transactional object could reach an inconsistent state for a few nanoseconds.