Use mono or mono symlink if present

This will help in cases where KRE is installed on a machine to use a
custom build of mono that doesn’t interfere with the standard mono
release. That works by going into the KRE folder and creating a symlink
to exactly the mono executable that should be used to host k commands.
Reacting to System.Security.Cryptography.Encryption package rename
"kpm restore" puts SHA files on disk
Don't use the resolved items in GetLibraryExport.
- Overwrite references with the more recent target framework
Fix race condition caused by concurrent access to global cache