Fix Thread leaking in ThreadLocalVariables

- introduce #bind method to avoid value leaks
- warn on using just #value=
If this is a bug and not just degraded functionality then we need to fix it. I have mixed feelings about the `Ref` gem. For pragmatism and expedience I'll probably suggest that for now we use `Ref`, but let me explain in more detail my concerns about adding dependencies to gems such as our. Adding dependencies to utility gems can lead to four problems, all of which I have experienced in production systems:

1. **Downstream incompatibilities:** Once gem depends on other gems which depend on other gems and so on. Adding one gem dependency results in a tree of several gem dependencies being added. Incompatibilities then occur downstream. (This is the exact problem Bundler was created to solve).
1. **Code bloat:** A gem dependency is added for one class/function, but the dependency gem has thousands of lines of code (internally and in its dependencies). That one class/function unnecessarily bloats the code base.
1. **Compilation errors:** I work in a cross-platform shop and we regularly have problems with C extension which don't compile. This is especially problematic when I require a pure-Ruby gem that has a downstream dependency which uses C extensions. I'be only recently started working with Java native extensions but I presume this can be a problem for JRuby, too. (This is why I pre-compile various builds of this gem.)
1. **Abandonment:** A dependency is added but the maintainers stop maintaining it.

The `Ref` gem passes two of these four metrics. It doesn't have any downstream dependencies and it is a very lean gem, so it's good for items 1 and 2 above. Not so much for items 3 and 4. With respect to item 3, `Ref` includes Java native extensions but it does not pre-compile those extensions. Therefore we cannot guarantee that any particular user of ours will be able to successfully install our gem on JRuby. With respect to item 4, `Ref` has not been updated since May of 2013. There are six open issues dating back to April 2012 and the maintainer has only responded to one of them. There is a PR that has been open since August of 2013 and the maintainer has not responded. As far as I can tell `Ref` has been abandoned by its maintainer.

I appreciate that it would be a bunch of extra work for us to implement our own weak key map, but we need to maintain the integrity of our own gem.

So I'm OK if we want to include `Ref` for now, but the best long-term solution is probably to build our own weak key map. Perhaps we can make that a goal for 1.0.

I may also reach out to the gem author. If `Ref` is no longer being actively maintained we may have an opportunity to bring it into the ruby-concurrency organization.