heterodyne: Use clearer temporary file names.

It's sometimes harder to follow the logic and ensure it as intended
when the intermediate file variables are call $temp<n>file, such as
the various masks and spectra in the iterations here.
heterodyne: Initialise and augment the main mask.

The mask was being recreated in the iterations instead of being
initialised as all good and augmented in each step of each
iteration.  Renaming some variables (9df5da0dab7be) helped make this
evident.
heterodyne: Modify a few comments.
heterodyne: Remove no-longer-used variable.
heterodyne: Use another more-descriptive variable name.

This also saves an NDFCOPY.  There were also two OUT parameters in the
first MFITTREND call where the new variable is used.  Retain the
temp6file for the second invocation to obtain the ranges and without
trend subtraction.
heterodyne: Use the same number of bins for both MFITTREND calls.

I was experimenting with different powers of two for the numbers of
bins and dithered between 32 and 64...  Different values sometimes
gave conflicting masks between that used and reported.
heterodyne: New primitive to mask a series pixel ranges along one axis.
heterodyne: Restructure to cope with subbands and subscans.

Reinstate lost changes to use the subFrms based upon SUBSYSNR.
Access and store the spectral masks for each subband first to avoid
issues changing Frames back and forth in the main loop through the
subscans.  Add a subscan loop, which means most of the changes are
indentation of the main processing block.