Favor using real value objects over test doubles.

This enables a refactoring I'll do in the next commit.
Refactor: extract dependency enumeration logic into a class.

This is in prep for adding additional logic to the dependency
enumeration process.
When there is a 0-fan-out dependency, use its deps instead.

Otherwise, the job can wind up with no dependencies and run
at any time!
Log warnings to a Logger instance.

Rather than stdout.
Merge pull request #52 from seomoz/transitive_dependencies_for_0_fan_outs

Transitive dependencies for 0 fan outs