fix Issue 11365 - Allow D source file names to have no extension (or an arbitrary extension)

https://d.puremagic.com/issues/show_bug.cgi?id=11365

This does not allow an arbitrary extension, as source files need to be D identifiers.

It is not enabled for Windows, as Windows does not have executable files with no extension.

In order to avoid the default behavior of overwriting the source file with the executable file, it generates "a.out" instead.

This is a redo of https://github.com/D-Programming-Language/dmd/pull/2700