paint a rectangle with a fill gradient

instead of using Smooth to interpolate a bitmap and putImageData, let the
browser do all the hard work!