gd.Image.prototype.watermark() improvement: it accepts now everything gd.open() does in the same sync/async manner