Clean up unnecessary version(Posix) and version(OS) and try to more narrowly scope catch-all else blocks

As mentioned on the newsgroup, this pull starts cleaning up unnecessarily separated version(OS) blocks, so that porters aren't given unneeded work.  Also, inside modules that are only available to Posix, `version(Posix)` checks are removed and catch-all uses of `else version(Posix)` are expanded to name each OS instead, as Sean said is the way it should be done.

I'm putting this pull up before it's done so that I can get comment on any of the proposed cleanups early on, before I spend time tracking more of these down.
@redstar, let me know if you need a Solaris declaration here, as there wasn't one in the druntime module this was moved from, but that predated your recent Solaris work.