AbstractMetadata: remove protected field

The "filtered" field was unnecessarily protected. It has accessors and
setters. Changed to private.
Checker: remove protected fields

Removed the suffixSufficient and suffixNecessary fields in favor of
interface-backed methods. This should make it clearer what to override,
instead of requiring that a constructor be created to set protected
fields.
Reader: remove protected fields

Removed protected fields in favor of getters and setters. Instead of
requiring initialization of protected fields in a constructor, there are
now to use an abstract protected helper method to lean on the compiler
and define what information needs to be provided when implementing a
reader.
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.
Merge branch 'remove-protected'

Refactoring of all SCIFIO components to remove protected fields. Protected
fields are a significant annoyance for extensibility and testing. The fact that
they can be modified with no hook to catch said modification is, basically,
miserable. It is infinitely better to use method accessors and setters when
appropriate.

Because of the use of these protected fields, part of the SCIFIO framework has
also been updated - e.g. the Writer initialization process is now much more
well-defined. Also, many classes now have abstract helper methods that need to
be implemented in concrete classes, guiding developers on what's required in
Format implementation, and removing the convention of protected fields being
populated in constructors (for no intuitive reason).

Closes #37
Apply style template

Ran Source -> Clean Up using the SciJava/IJ2 source template.
SCIFIO tools: don't run if param validation fails

If a CmdLineException is thrown after parsing and validating the command
line arguments, we should just return instead of continuing to execute.
ImgOpener: close reader after planes are read

For non-CellImgs, after reading planes and populating an ImgPlus, there
is no reason to keep a Reader open.