Add PInvoke/SafeHandles tests (dotnet/coreclr#19330)
* Add PInvoke/SafeHandles tests
* Fix compile warnings - include header file with relative path
* Run SafeHandle tests only on Windows. The tests are very Windows-centric, so we'd have to do quite a bit of a re-write to get them working xplat.
* Fix CMake project references.
* Fix interface CMakeLists project reference.
* Add casts for string literals.
* Use LPOLESTR and the W macro instead of OLECHAR* cast and L prefix.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c1ae5a5600247cbe9790e40cd127363c43a17b35