Of backends and refreshers...

 - The first commit makes sure that a backend without refreshing capabilities isn't spammed when an object cannot be found in any backend
 - The second commit only purpose is to ease the review of the next commit diff
 - The third commit makes the backend responsible for internally handling any potential refresh logic. It also takes care of modifying the pack backend accordingly