Context and transformers work - 2

Continued from #1100.

Not ready for merge -- opened to ask questions on the code and get some reviews/feedback.
> Would you find it sufficiently less confusing if it only bound constructors that were annotated?

Yes, I think that would be great.

I guess we'll need to add a `Void` argument to classes with 0-arg constructors that we don't want to use in injection, right?