Use QueryAdapter APIs as per MS directives
Update ICD loader to use QueryAdapter APIs
as per MS directives for para-virtualization.
This includes changes to -
1. Order OpenCL platforms consistent with Windows adapters,
to honor user-settings for multi-adapter machines.
2. Fix OS version detection.
3. Some minor fixes including
1. Add trace prints at required places.
2. Fix build failure in getting the address of D3DKMTQueryAdapterInfo.
3. Fix early return platform enumeartion if there are no entries found for old reg key
under "HKLM\\SOFTWARE\\Khronos\\OpenCL\\Vendors" to allow add for the entries found
using DXGK interface and HKR entries.
4. Some other fixes including
1. Update README.md with WDK dependency information.
2. Move AddAdapter* call inside for which got misplaced while resolving conflicts.
3. Free WinAdapter allocations and avoid overriding NULL platform.
5. Fixes based on review comments including -
1. WinAdapter is reallocated with previous allocation freed.
However, the final allocation is not freed.
Fixed the same to free at the end of enumeration.
2. Fix header file ordering by including windows headers
inside necessary header files.