heterodyne: Rename variable for input NDF...

as it's no longer just the first in the merging of multiple
observations.
heterodyne:  Form two hashes for the relative signals.

One is for the full set of defined receptors, and a subset
without any bad receptors which is used for the pretty printing.
The loop is now for all receptors, not just the good ones,
whose number may vary between observations.  The full set will be
used to apply the normalisations.
heterodyne: Form normalisation array for each observation.

When I re-jigged the code to work for more than one observation at a
time (to improve the S/N), I created arrays with the maximum number of
receptors (16) in case different observations had different sets of
available receptors.  Now when dividing by the relative responses at
the end the primitive used the full 16 receptors instead of the actual
number present in the original data.  This could lead to the wrong
factors being applied to each receptor.

The cure for this applied here is to select just those receptors
applicable to each observation and use their flat-field factors to form
a temporary NDF with TRANDAT.  Then this is grown to a cube as before,
and divided into the corresponding observation file to apply the flat.
heterodyne: Correct a heading--not combining multi-night data.