It is only safe to call this method if there are no current resource consumers and if this
method has not yet been called. Typically this occurs at one of two times:
During a resource load when the resource is transformed or transcoded before any consumer
have ever had access to this resource
After all consumers have released this resource and it has been evicted from the cache
For most users of this class, the only time this method should ever be called is during
transformations or transcoders, the framework will call this method when all consumers have
released this resource and it has been evicted from the cache.