Committing the following fixups:

  1. Corrected the handling of 16-bit pngs so that all 16 bits are
     kept for processing.
  2. Fixed the ground truth centroid calculation to be the
     mean x,y of all white pixels (after thresholding).

Added:

  1. A function for retrieving the bpp of the current png (png::get_bpp()).
  2. A function for writing out a thresholded image (png::write_pgm())
     as a pgm file that includes the threshold and centroid as a comment 
     and inserts a cross at the centroid point on the pgm (the internal 
     png data does not have this cross).
  3. A evocadx.dump_images_dir configuration option that specifies a
     directory to write pgm images to.  If this option is unset or
     empty images will not be written.
  4. Changed the threshold function so that the threshold is calculated
     from the image using a histogram analysis heuristic.