Cleanup comments in LuminanceBlitShader.
Add new single-pass shader 'WeightedColorComponentSum'.

shader = CreateSinglePassImageProcessingShader(window, 'WeightedColorComponentSum');

creates a new shader for use with Screen('Drawtexture'). This one
takes the r,g,b,a color values of each texel, weights/multiplies
them by the 'modulateColor' color gain values as usual, but then
sums all of the four weighted values into a single scalar. Then
it replicates that scalar into all four RGBA output color compoments.

Iow., it computes the dotproduct of input texel and modulateColor
and assigns it to all RGBA output channels.

Some useful use cases:

- Turn luminance channel/luminance into an alpha mask by
  using modulateColor=[1,0,0,0] during drawing, so red values
  (which correspond to luminance in a luminance texture) get
  copied into alpha channel. Use Screen('Blendfunction') color
  write mask [0,0,0,1] to only the info into the alpha channel.

  More advanced: Use modulateColor [r,g,b,0] gains r,g,b to
  compute a real RGB->Gray luminance conversion.

  -> This is helpful if one wants to draw alpha-masks in the visual
     channel, so the resulting mask can be easily visualized for
     debugging. Also this allows (meta meta!) to use alpha blending
     and alpha channels to composite an alpha mask itself without
     warping ones brain.

- Abuse texture drawing for morphing up to 4 layers via a
  weighted sum of the four layers: modulatecolor = blend weight vector.