I'm not a fan of synthesizeDependencies being responsible for both verifying that the dependency exists in the container _and_ synthesizing the property. I left it this way because I feel there needs to be a discussion about whether we want `needs` to synthesize or not and this was the fasest way to get it working.

If we decide that `needs` should synthesize I'm open for suggestions on how to make this better :)