"kpm restore" offline should succeed if there is no dependency missing

- If we know an exact minimum version (version without *) and that version
  is availale in local packages folder -> done
- If '--ignore-failed-sources' is specified and we have a package that
  satisfies the version ranges -> done
- Otherwise exit with errors

parent #591 
This behavior is correct when `--ignore-failed-sources` is specified. The only problem is that, do we want this behavior when we are online? That is, if all remote sources are accessible but they don't contain the desired package, do we want to show `Unable to locate ...`, or we want to check whether there is a local package falling into the version range and use the local one if available.