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)
I definitely agree that there's a performance loss, but after some benchmarking, "significantly worse" may be overstating it a bit, I found the hit to be ~10%:

```
test dynamic      ... bench:      1725 ns/iter (+/- 71)
test local_data   ... bench:      6739 ns/iter (+/- 33)
test os           ... bench:      9787 ns/iter (+/- 215)
test scoped       ... bench:      1529 ns/iter (+/- 10)
test statik       ... bench:      1544 ns/iter (+/- 16)
test thread_local ... bench:      1545 ns/iter (+/- 20)
```

[benchmarks](https://github.com/alexcrichton/tls-rs/blob/master/benches/b1.rs)