Merge PR #3893 (Implement `--index-state` aka index freezing)
This PR implements a new flag `--index-state` (and its `cabal.project`/config-file equivalent `index-state: ...`) which allows to change the source package index state the solver uses to compute install-plans. This is particularly useful in combination with freeze-files in order to also freeze the state the package index was in at the time the install-plan was frozen. This provides the core functionality, on which future enhancements can build upon. See also description of PR #3604 for some possible enhancements.