Tls: A TLS static storage is now fully dissociated from its originating object.

The big deal with this is that the static storage of a TLS storage
will stay valid even if the originating TLS object goes out of scope.

This is accomplished by keeping a copy of the destructor in the TLS
storage which makes avoids crashes if a thread holding a TLS is
destroyed after the TLS object is destroyed.