GSOC: Dependency Injection

I don't know if this is still relevant, but...

When Doug G. and I were at Kona I described the dependency injection
pattern to him and his eyes lit up because he saw it could eliminate
lots of dependency carrying in the Clang codebase

We agreed at the time that refactoring things to use DI might make a
great GSOC project. Also, I should mention, which is like Guice for C++