Solution for the dependency injection exercise

DO NOT MERGE. It's intended to show the diff only.

It shows how to
- define controllers as services,
- manage common dependencies with parent services,
- make use of lazy services.