Implement Dependency Injection for all services using Guice.

The changes in this pull request implement Dependency Injection for Alitheia using Guice.
The services that are initialised in the AlitheiaCore class are created by an injector provided by Guice. All references from the implementations of the services to the static AlitheiaCore instance are removed.

Not all references to AlitheiaCore have been removed, but can be when the Guice injector is used to create those classes as well.

Information as to why we have made certain choices for implementing Dependency Injection can be found in the report (SRE report 2). If there are any further questions, feel free to ask.