We need to bind our texture here.

Usually this is called right after the texture is created, and thus is already
bound, but we should not (and now cannot) rely on that. All the other backends
were already doing the right thing.
Factor out texture refresh for CanvasImagen.

This simplified the process of fixing an edge case, which is that if the image
is repeated or mipmapped and needs to be converted into POW2 form before
uploading, we can't just call updateTexture(), so we go back to destroying and
recreating our whole texture in that uncommon case.