Extracted readDependencies to solver environment

These changes don't alter behavior of dependency solver, but are necessary to be able to change default way of how dependencies information is fetched. Thus, this change would allow to be able to run dependency solver without network access and make it testable.