Note @SmileyChris: This is the alternative to the custom attribute. `self._dimensions_cache` is set before the `Thumbnail` model instance is saved into the database. By not setting it here we enabled the db cache later, which then will talk to the remote backend. This feels less than ideal. Short of adding another attribute to hold the dimensions we already know about...

Anyway, I'm not fussy either way. This works and those using a remote backend may reasonably expect a bit of time when uploading the thumbnail anyway.. maybe the time to get the dimensions is inconsequential.