RFC: Add a thread local storage module, std::tls

Introduce a new thread local storage module to the standard library, `std::tls`,
providing:

* Scoped TLS, a non-owning variant of TLS for any value.
* Owning TLS, an owning, dynamically initialized, dynamically destructed
  variant, similar to `std::local_data` today.

[Rendered](https://github.com/alexcrichton/rfcs/blob/tls-overhaul/text/0000-tls-overhaul.md)
If there are 100 TLS variables and each one has a destructor accessing the next for the first time, I think it will lead to leaks with the old POSIX TLS because it only cycles N times (4 on Linux IIRC). AFAIK, that problem was solved for C++11 TLS by just giving it sensible semantics (run until completion).