Make injected values be singletons.

This is easier for a caller to reason about and also avoids creating many
copies of essentially the same object when complex object graphs are
in play.