Add a `get_mut` method for TLS

Simulates borrow checks for '@mut' boxes, or at least it's the same idea.
auto merge of #7841 : alexcrichton/rust/tls++, r=huonw

Simulates borrow checks for '@mut' boxes, or at least it's the same idea. This allows you to store owned values, but mutate them while they're owned by TLS.

This should remove the necessity for a `pop`/`set` pattern to mutate data structures in TLS.