Start moving backref logic back under thread context.

In order for us to start optimizing backref logic away, we need to
hide how it is stored and retrieved. Moving back under
ThreadContext allows us to have more flexibility in implementing
new backref mechanisms.
This file is *not* generated.