general: Add PRODUCT argument and write astro:productID keyword.

Add metadata to the graphics files.  This lets the wrapdr scripts
know what to rename the products.

The PRODUCT keyword may not be necessary, as the product should
come from the NDF header.
Files: Allow optional comment argument/returned value to product method.

CAOM-2 productIDs are tied to the plane concept.  A plane may contain
several components, e.g. various Stokes parameters for polarimetry,
and adding a comment permits some delineation.
general: Correct and augment the documentation and messages.

Included is the list of the Keywords written to the graphic file.
general: Add support for vector overlays via new VECTOR_FILE argument.

This only works for PNGs as we can make a transparent overlay,
which can be combined later in the wrapdr stage for CADC prrocessing.
JSA: Add support for the product.

This is for both the renamed NDF and for the graphics preview files.
I note that the former still uses _SET_FILE_FITS_ITEM_ rather than the
product method.
JSA: Add VECTOR_FILE argument to create vector overlay plots.

The argument is passed to the graphics primitive if defined.
maging: Write product with comment and use extended _TAG_AS_REPRESENTATIVE_.

Use the product() method instead of _SET_FILE_FITS_ITEM_.

UKIRT doesn't have a sync_headers like JCMT.  In case there are side
effects from putting it in ORAC::UKIRT, for now just sync the PRODUCT
header to the FITS headers.
imaging: Tidy ifs to normal style and of original code.
imaging: Rework product handing for polatimetry.

  - Bundle the header copying and merging into a subroutine.
     - Propagates the headers.
     - Put the current filename into a new Frame but not as the raw file
     so as to permit the sync_headers method to work.
     - Use the product method with a comment.
     - Enable and perform sync of the PRODUCT header with the rest of the
     headers.
  - Restore the Display code to its pre-December locations.
spectrscopy: Rework product handing for polatimetry.

  - Bundle the header copying and merging into a subroutine.
    - Propagates the headers.
    - Put the current filename into a new Frame but not as the raw file
    so as to permit the sync_headers method to work.
    - Use the product method with a comment.
    - Enable and perform sync of the PRODUCT header with the rest of the
    headers.
  - Do not tag every polarimetry spectrum as representative.  Use
  reduced productID for all.  Leave the comment to discriminate
  between them.
- Restore the Display code to its pre-December locations.

Note the the final display of the _pth file does not work, being a
FITS catalogue rather than a spectrum or an image.  This was the state
I found it.  Once I've determined what is best to plot as a
representative image, this will be revised.
spectroscopy: Use product method (includes comment) instead of _SET_FITS_FILE_ITEM_.

Call sync_headers to merge the PRODUCT header.

Also where _TAG_AS_REPRESENTATIVE_ is called pass the product and
comment to that primitive.
spectroscopy: Remove tagging as representative.

It's done elsewhere.
spectroscopy: Propagate history as Figaro:OPTEXTRACT loses it.

This is a bit of a fudge but better than dropping the history
completely.  I tried playing with OPTEXTRACT briefly, but it
only led to a segv when I changed the switch in the relevant
DSA_ call.
ifu: Use product method with comment rather than _SET_FILE_FITS_ITEM.

Also had to overcome the no-suffix file---who's bright idea was
that?---as sync_headers cannot work on the raw file, and this
was the raw Grp file.  So for ease of handling I gave these a _dif
suffix.
ifu: Use Grp header to determine if flux corrected.
ifu: Use product method instead of _SET_FILE_FITS_ITEM_.
ifu: Use Grp header to test whether fluc corrected.
ifu: Get the root via the rawfixedpart rather than kludge.
ifu: Look for any _im to be image product.

This is to overcome the reuse of this primitive where the suffix
can be set to _im_fc, i.e. flux corrected, but in fact the flux
correction has not occurred.

The same applies to _COLLAPSE_CUBE_TO_FORM_SPECTRUM_ but for the
spectrum product in Commit 1a022ee5554b8734c, but I missed it
amongst other changes while half awake at LAX.
ifu: Need to reset the Grp file before display.