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)
You could measure the time taken by a no-op loop calling `black_box` on a local variable, and subtract that from the time taken by the various benchmarks. AFAICT, with optimizations enabled LLVM is just going to optimize out the repeated TLS offsets to a single reused offset (not that pointer arithmetic is expensive) so it's just going to be measuring the cost of incrementing memory at that location. I wouldn't expect it to be more expensive than a global variable even without the TLS optimizations though - both are dynamic offsets in position independent code.