Add IndexUtils with functions to disambiguate packaage names
To allow us to implement case-insensitivity in package names given on the command line. We lookup in the package index for packages with the same name case-insensitively. If there is no exact match exact case-sensitively and there are more than one packages matching case-insensitively then it aborts with a message listing the matches. This should not often happen since within any single HackageDB server, we can check that packages names are unique case-insensitively but it's possible to get ambiguities if cabal-install has been configured to use multiple repos.