WIP: Clean up unnecessary version(Posix) and version(OS) 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, `version(Posix)` checks inside modules that are only available to Posix 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.