add `#[thread_local]` attribute

This provides a building block for fast thread-local storage. It does
not change the safety semantics of `static mut`.

Closes #10310
port the runtime to `#[thread_local]`
add a thread_local feature gate