Cleanup: remove final modifier from private method
[MSC-28] Fix race condition involving the dependents lock in ServiceRegistrationImpl
Enhance test failure messages.
[MSC-60] Replace the previous dependencyFailed/dependencyUninstalled notification mechanism in ServiceInstanceImpl by a visitor
mechanism that traverses all service dependencies in a container, notificating affected services of dependencyFailed/dependencyUninstalled

Plus:
- update Dependency*TestCases so that assertOppositeNotification uses futures with a shorter timeout latch.
- add DependencyCycleTestCase to test dependency cycle scenarios
[MSC-58] Add detectCircularity method to ServiceContainer.

Tests for this feature have been added to DependencyCycleTestCase.
Rename ServiceInstanceImpl back to ServiceControllerImpl
Update Modules dep
Clean up minor warnings
Clean up minor warnings and javadoc issues
Javadoc tweaks
Fix problem in canonical name calculation
Add execute() method to lifecycle context for ease of implementation of async start/stop tasks
[MSC-61] Delete BatchBuilder, implementations, and related code in src/main.

All tests that refer to the builder have been adapted.
[MSC-65] Fix OptionalDependency.addDependent implementation.

Now, the call to addDependent is made before determining notifyDependent value.
Fix typo at fail message of AbstractServiceTest.assertController(ServiceController<?>, ServiceController<?>) method.
[MSC-60] Fix a couple of race conditions that have been found.

1. At ServiceContainerImpl.checkFailedDependencies, scheduleNotifierTaskPostponed should be overwritten only if notification is NOT_SCHEDULED
2. Create an exclusive Thread to handle notifierTask, as more than one NotifierTask executing concurrently for the same container could lead to inconsistent notifications.

Plus, there is no need to schedule the NotifierTask at ServiceControllerImpl#RemoveTask. So, I replaced the postPoneExecution atribute value of
checkFailedDependencies with true.
ServiceContainerImpl$ShutdownHooker should add the terminate listener to container before starting the shutDown
[MSC-62] Change signature of void ServiceBuilder<T>.install() to ServiceController<T> ServiceBuilder<T>.install().

Also, update a few tests to assert the returned value of install accordingly.
[MSC-62] Update more tests to assert the return value of ServiceBuilder.install()
[MSC-64] Add support for child services