Turn module and application into DI containers.
refactored code to use Instance::ensure()
Merge commit 'f605508bb2805d24df98037ea239f8f582deda0e' into feature-container