Small thing: this adds a public `local_thread_key` method to the class it's mixed in to, but it's internal implementation.

Is doing `Thread.current[name] ||= new` any slower than `Thread.current[@local_thread_key ||= name.to_sym] ||= new` ?