Resolver should error if incompatible dependencies are specified

Explicit dependency on git, runit =1.0.6 and nginx =1.3.0. ngnix 1.3.0 has a dependency on runit "<= 0.16.2", git 2.3.0 has a dependency on runit "~> 1.0.0".

runit 1.0.2 was in the Berkshelf, and since the resolver found the requirement from git first, it used that one, installing 1.0.2.

Expected behavior would be to either use the higher precedence definition in metadata, or raise an error.

Side-note: some of these dependencies are coming from recommends, not depends, which makes this more complicated.