- FileChannelImageInputStream/MappedByteBufferImageInputStream
- FileChannelCacheImageInputStream
- FileChannelImageOutputStream
- FileChannelCacheImageOutputStream

- Consider creating a raw ImageReader (or util class?) that can read raw bitmaps:
    o Interleaved (A)RGB (as in BMP, PICT, IFF PBM etc) -> A1R1G1B1, A2R2G2B2, ..., AnRnGnNn
    o Channeled (A)RGB (as in Photoshop)                -> A1A2...An, R1R2...Rn, G1G2...Gn, B1B2...Bn
    o Planar RGB (as in IFF ILBM)                       -> ....
  Formats that internally have these structures could delegate to an instance of this class.
  Could also be interesting to allow for raw reading using a RawImageReader.
    o Would need to specify width, height
    o bit depth
    o Pixel layout (planar, channeled, interleaved)
    o Channel order
    o Compression? RLE/PackBits/LZW/ZIP?
    o IndexColorModel?

DONE:
- Get vendor name/version for SPIs from manifest.
    Package pkg = getClass().getPackage();
    version = pkg.getImplementationVersion();
    vendor = pkg.getImplementationVendor();
    specTitle = pkg.getSpecificationTitle();
