Fix crash on 'Select all updated'
Merge pull request #599 from AlexanderDzhoganov/master

Fix crash on 'Select all updated'
Try to fix the missing default instance bug
Copy downloads before iterating over them, since they may be modified concurrently.

Without this fix I repeatably see 'System.InvalidOperationException: Collection was modified; enumeration operation may not execute.' exceptions while installing KarbonitePlus.
Merge pull request #601 from cswetenham/master

Copy downloads before iterating, since they may be modified concurrently
Merge pull request #600 from AlexanderDzhoganov/master

Fix the missing default instance bug
Change PortableDir to use GetExecutingAssembly instead of GetEntryAssembly. The later can fail in certain types of test runner.
Add equals and hashcode to KSP.
Based on the gamedir.
Reworked KSPManager.
Extracted the registry functions to their own interface. Added tests.