Code copied from lelmarir lelmarir-remove_child_injector_and_services
Added ApplicationViewService
Changed to using com.google.inject.Provider throughout - some assignment
compatibility issues with javax equivalent

using eclipse-wtp in Gradle build (as recommended by Vaadin Gradle plug
in)

removed unused injector field from ScopedUIProvider

Service code integrated and regression tests run successfully
Tested added for getInjector().  Closes #200
Removed service type from ServicesRegistry.  It is never used
BaseGuiceServletInjectorTest extended to included Services.  Works in
IDE but not from Gradle (as before)

Added unit test for ServiceRegistry.  Corrected logic to trap missing
start / stop annotations
@Provides for ServicesRegstry added to ServicesManagerModule to control
scope of ServicesRegistry. See #201
javadoc only
Corrected test name
Moved validation of service object into the ServicesRegistry and added
check for @Service annotation.  See #201
Services using Service interface, no need for annotations.  Basic test
works, with AOP code invoked, and auto-registration of services working.
The javadoc in the Service interface describes things as they will be,
but hasn't all been tested.  See #201
Added some extra states to the Service, units tests for ServicesManager
written.  Status is now expected to be returned from the Service
implementation, as this is likely to be a more accurate reflection of
real status.  See #201
Added option to annotate a Service with NoAutoRegister - service then
requires manual registration to start it
Moved the exclusion of NoAutoRegister annotated Services to the Listener
Started dependency management for Services.  Jung library does not
contain cycle check for DAG, so DynamicDAG created.  Probably not the
most efficient algorithm, and testing limited.  DynamicDAG could also be
useful for #130
Service ids added to interface
Tests for ServiceUtils
Introduced assertj and replaced JUnit assertions with assertj assertions. Closes #209
Redesign of Services layer, not quite complete but major components in
place.  ServicesManager now largely passive and renamed to
ServicesMonitor.  Services can auto-start dependencies (controlled by
annotation).  Status change listeners added automatically.
AbstractService or AbstractServiceI18N the best way to create a Service.
ServicesMonitor not yet thread safe.  See #205, #201
ServicesMonitor completed