Process.Kill: don't throw for exited processes (dotnet/corefx#36184)
* Process.Kill: don't throw for exited processes
Implements https://github.com/dotnet/corefx/issues/35257
* Fix exception type
* Fix Windows build failure
* Windows: avoid HasExited side-effects, Unix: refactor code a bit
* Unix: fix error code check
* Refactor test to eliminate timeouts
* Remove !HasExited checks before Process.Kill calls
Commit migrated from https://github.com/dotnet/corefx/commit/
1a04816bf3c5be25de09c6cfbb4290752583713b