std.process: Remove incorrect usage of file RangeError ctor parameter

The code attempted to construct a RangeError object with a
"Command line is empty" string as the first parameter. However,
the first parameter specifies the source file (and defaults to
__FILE__), not the reason (which is always "Range violation").
Merge pull request #1435 from CyberShadow/std-process-rangeerror

std.process: Remove incorrect usage of file RangeError ctor parameter
Fix Issue 10216 - Bad warning in std.process.kill
Fix issue 10601.

If extension is empty, std.path.setExtension should be equivalent to
std.path.stripExtension. This special case is useful in generic code
that needs to alternate between, e.g., .exe on Windows and no executable
extension on Posix.
Simplify unittest.
Merge pull request #1438 from kyllingstad/kill-warning

Fix Issue 10216 - Bad warning in std.process.kill
Merge pull request #1409 from quickfur/issue10601

Fix issue 10601.