`Thread#[]` talks about being `Fiber` local, and has some vague warnings about it not being the same thing as thread local, so we might need to proceed with caution http://ruby-doc.org/core-2.0/Thread.html#method-i-5B-5D.

The problem with the current model of thread local variables is that you pass in a symbol and then have to look that up in something. That means JRuby has to do a hash table lookup I think. `ThreadLocalVariable` could directly have a `ThreadLocal` in it under JRuby, and could use the standard mechanism. It could also automatically allocate a unique symbol for you, as otherwise they're not namespaced and could collide between modules. I'll open a bug report for `ThreadLocalVariable`.