Simplify rectangular texture program
Share most of the code between rectangular and texture programs by using a texture space transformation which modifies texture coordinates per-vertex. This also allows the elimination of the flipped texture coordinates, further simplifying things. This is a preliminary step to make it easier to implement masking to layer boundaries.