Android: Packed TLS for ELF

Never heard back from Walter about the dmd patch I used for Android/x86 and I know he's very careful about copyright, so I'm submitting it as a pull request.  Right now, I'm just looking to find out if some sort of packed TLS for ELF pull like this would be considered for merging and if I made any mistakes in my approach.  If so, I'll clean this pull up and figure out a way to work it into the existing build, but I don't want to do that cleanup if the basic concept is not deemed worthwhile for dmd.

I used this pull to compile druntime and phobos for Android/x86, with almost all modules' unit tests passing.  I'm not sure if this pull will work for shared libraries on Android, as I had problems in `___tls_get_addr` in druntime when I tried that, will update when I figure out what's going wrong there.

Let me know if this sort of packed TLS for ELF approach would be worth merging and I'll clean up this pull.
> It's probably easiest to reuse those section names, especially since Android doesn't support the __thread annotation and native TLS.

I does not yet support it, but once it does things will break. Apparently the linker is already aware of tls.

>  I believe the kernel uses the TLS flags SHF_TLS and STT_TLS and not section names to find the TLS sections, so maybe the section names don't matter anyway.

The kernel uses segments, but the linker only goes by names. So when the linker has to map a TLS and a non-TLS section to the same segment things will go awry.