Factor out dependency resolution.

This will allow Scaled to reuse most of this infrastructure, whilst plugging in
its own knowledge of project locations.