First, prevents a memory leak if users reference self in their PINAnimatedImage completions.
Second, this deletes decoded files when there are no more references to an animated image.
Previously we deleted on app open and exit.
I wasn't going to do this in case you closed a GIF and then reopened, but the more I
thought about it the cost is too high: A user can see their disk size balloon if they view
a bunch of GIFs and then check usage. They could also fill up their space enough while using
the app by viewing GIF after GIF that instability could result.