Revert commit 3ceb1a37d8927cb6e1e1768eb8452c9b55d950d4. The attempt at elegance caused a bug where reverse relations didn't always end up cached.
Merge branch 'master' into next

* master:
  Revert commit 3ceb1a37d8927cb6e1e1768eb8452c9b55d950d4. The attempt at elegance caused a bug where reverse relations didn't always end up cached.