Promise based image loading
Replace init callback with thenable init, other cleanup.