Renamed TAG enum to Tag and moved to its own file.
Update TIFFParser to have big endian or little endian SeekableDataInput
created polymorphically by the BYTE_ORDER enum.
Added method Tag.addToImageFileDirectory() so that tag data can be added
to an ImageFileDirectory in a polymorphic way. This is only currently done
for a small subset of all tags. Deleted DirectoryEntry as it is no longer
needed.
Added PHOTOMETRIC_INTERPRETATION enum and used it (instead of a the short
val).
Added support for reading tag SamplesPerPixel.
Changed Tag constructor to take an EnumSet of the DATA_TYPEs that are
allowed for that tag.  Changed method Tag.addToImageFileDirectory() to
check the incoming type against this EnumSet and, if the type is allowed,
to then call method Tag.addToImageFileDirectoryInternal() which can be
overridden by the individual Tag types.