Support the setting of a custom image element on js version of ImageLoader

There can be quite a bit of churn when reusing an ImageLoader under js as a new element is created each time. This also requires the old one to be removed and new one added to the dom each image load.

This update allows for a custom image element to be used if set on the ImageLoader, removing the need for creation each load. This showed a slight scrolling improvement on ipad/iphone for example.