Start separating linux kernel and glibc APIs

This pull uses the new `CRuntime_Glibc` and `CRuntime_Bionic` predefined global versions from [dmd pulls #4111](https://github.com/D-Programming-Language/dmd/pull/4111) and [#3643](https://github.com/D-Programming-Language/dmd/pull/3643) to start separating out linux kernel APIs from glibc and bionic APIs.  I used dstep and a modified Dscanner to help find type and struct declarations, but had to check enums again by hand.  dmd pull #4111 will have to be merged before this one.
Sean's coding style uses the "reversed" spacing. Even though pretty much everybody else uses the `version (foo)` style, quite a bit of the code in druntime (and also `std.concurrency`, etc.) is written in that style. I don't think it is worth obsessing about this in pull requests unless we decide to standardize on one variant for all of druntime/Phobos.