Processes the topmost available {RequirementState} on the stack @return [void]
@return [ResolutionState] the state whose ‘requirement` is the given
`requirement`.
@return [Integer] The index to which the resolution should unwind in the
case of conflict.
Pushes a new {DependencyState} that encapsulates both existing and new requirements @param [Array] new_requirements @return [void]
Pushes a new {DependencyState}. If the {#specification_provider} says to {SpecificationProvider#allow_missing?} that particular requirement, and there are no possibilities for that requirement, then ‘state` is not pushed, and the node in {#activated} is removed, and we continue resolving the remaining requirements. @param [DependencyState] state @return [void]