Parser: remove protected fields

Removed protected fields that can be accessed through a parser's
Metadata and added API for accessing/setting these fields properly.

Updated all API usage.
Writer: remove redundant ColorModel field

There were two ColorModel fields - cm, and model. "model" had
appropriate getters and setters established, so cm was removed and usage
refactored appropriately.
Writer: remove protected fields

Refactored the Writer class to remove all protected fields. Added
setter/accessor methods where necessary.

Overhauled the initialization and configuration framework of the
AbstractWriter to facilitate proper behvaior with these accessors.
Format: remove protected suffix array

Made suffixes array private instead of protected, moved the getSuffixes
implementation to AbstractFormat, and added a protected abstract
makeSuffixArray method that AbstractFormat subclasses must implement.

This clearly defines what needs to be provided by a Format
implementation, while lazily creating and caching the suffix array when
requested (to avoid repeated small array creation).
Core formats: remove protected fields

Refactored io.scif.formats to remove protected fields.
TiffRational: remove protected fields

Unnecessary protected fields, now private. Can added accessors/setters
if needed later.
AWTImageTools: remove protected field

There was no reason for this to be protected - there are no
AWTImageTools subclasses. If it was intended to be package scoped, that
is terrible. If a use case arrises, this can just be made public,
because it is static final (or an accessor which creates a deep copy, or
something.. anything other than package protected).
SCIFIOCell classes: remove protected fields

Refactored all io.scif.img.cell classes to remove protected fields.
Tools: remove protected fields

Refactored the SCIFIO tools component to remove all protected fields.
IO package: remove protected fields

Refactored io.scif.io classes to remove all protected fields.
AVIFormat: fix initialization

Because of the effectiveAxis logic, adding a length 1 axis without
adjusting the planar axis count is effectively accomplishing nothing,
thus attempting to set the axis type when that axis is not really
considered "present" results in AIOOB exceptions.

Solution is to set the planar axis count, and then set the axis type.
AbstractImageMetadata: remove protected field

Unnecessarily protected constant. It's a static final long, fine to be
public (or private if we want to hide it for some reason).
Remove remaining protected fields

There were some miscellaneous classes, with no subclasses, that had
protected fields. These are not accessed anywhere, so their visibility
has been updated as appropriate.