set Safe
Set the Factory that will be used to lazily create the singleton ImageLoader.
This function is similar to setUnsafe except:
If an ImageLoader has already been created it will not be replaced with factory.
If the singleton ImageLoader has already been created, an error will be thrown as it indicates setSafe is being called too late and after get has already been called.
It's safe to call setSafe multiple times.
The factory is guaranteed to be invoked at most once.