@param [Conflict] conflict @return [Array] minimal array of requirements that would cause the passed
conflict to occur.
@param [Object] requirement the proposed requirement @param [Object] activated @return [Array] possibility set containing only the locked requirement, if any
@return [String] the name of the source of explicit dependencies, i.e.
those passed to {Resolver#resolve} directly.
@return [Boolean] where the requirement of the state we’re unwinding
to directly caused the conflict. Note: in this case, it is impossible for the state we're unwinding to to be a parent of any of the other conflicting requirements (or we would have circularity)
Ensures any raised {NoSuchDependencyError} has its {NoSuchDependencyError#required_by} set. @yield