function createTextureAsync(gl, options) {
  return new Promise(function (resolve, reject) {
    createTexture(gl, options, function (err, texture, source) {
      if (err) {
        reject(err);
      } else {
        resolve({
          texture: texture,
          source: source
        });
      }
    });
  });
}
Creates a texture based on the options passed in.

see {@link module:twgl/textures.createTexture}.
The only difference is this function returns a promise
where as the other returns a texture and takes a callback.

Note: this is here for completeness. It is probably better to use
the non-async version as it returns a usable texture immediately
where as this one you have to wait for it to load.

@param {WebGLRenderingContext} gl the WebGLRenderingContext
@param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.
@return {Promise<CreateTextureInfo>} The created texture and source.