Fix race condition in DiagnosticSourceEventSource (dotnet/corefx#35269)
* Use RemoteInvoke in DiagnosticSourceEventListener tests
Running these concurrently with other tests in the same process can result in spurious failures.
* Fix race condition in DiagnosticSourceEventSource
If multiple threads all try to write different objects at the same time, PropertySpec.Fetch can manifest a race condition that results in potentially trying to cast one call's object to another call's type. The fix is to allow for atomically storing the cached data, and using a local to ensure that a calling thread's view is consistent.
Commit migrated from https://github.com/dotnet/corefx/commit/
7c50828052ba55e3474ff5dd29ee7fcf5bbfa03d