More forgiving thread local hacks

This implementation should cover more corner cases (e.g. Celluloid::Future with
a block) than the previous one.

In cases where the :celluloid_actor is unset, this defers to the superclass
implementation. This allows thread local access within Celluloid::Threads even
in cases where a Celluloid::Thread is used outside an actor.