Add ImageBufAlgo::make_texture() that takes an ImageBuf rather than filename

Slight refactor of IBA::make_texture to allow a new entry point that takes an existing IB as input to make a texture and write it to disk, rather than requiring the input to start on disk in the first place.

This is for you, Dan!