Behaviour of readouts:


typedef struct {
	const char *extname;
	psMetadata *header;
	psArray *images;
	psArray *masks;
	psArray *weights;
} pmPixelData;

typedef struct {
	...
	psMetadata *concepts;
	pmCell *parent;
	psImage *image;
	psImage *mask;
	psImage *weight;
} pmReadout;


Procedures:

a. Read: set pmReadout->image = pmPixelData->images->data[i],
   pmReadout->mask = pmPixelData->masks->data[i], pmReadout->weight =
   pmPixelData->weights->data[i]

b. Mask bad pixels: Copy the provided mask into the input image mask.

c. Bias/overscan subtraction: Read the CELL.BIASSEC, and apply to the
   CELL.TRIMSEC.

d. Trim: Cut the CELL.TRIMSEC, and paste into pmReadout->image,
   pmReadout->mask, pmReadout->weight.

e. Flat-fielding: Pretty straight-forward.  The FF just needs to be of
   the same format as the input image.

f. Splice: If images are untrimmed, then have to pluck out the
   CELL.TRIMSEC and CELL.BIASSEC, and need to worry about the overscan
   regions.
