Reduce number of files in packed output

- Nupkgs, nuspecs and SHA files are not copied to output packages folder
- Only copy assemblies needed by the frameworks being packed with
- Use frameworks in project.json if '--runtime' was not specified
- Use values of '--runtime' to filter frameworks in project.json
- Use SHAs from global.json when resolving KRE_PACKAGES_CACHE
- Copy tools dlls from source packages to bin folder of output
"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
Update a logic to find the "root"
- Remove .git lookup and packages lookup
- As a fallback use the project folder

#663
Make the portable profile lookup thread safe
Use correct delete operation when doing "kpm pack --overwrite"
Use PackOperations.Delete() to prevent infrequent failure
Rework MultiCoreJit startup