Constructor.
Adapted from John Cristy's ImageMagick.
Decodes LZW image data into pixel array and returns table-based
image data - see http://www.w3.org/Graphics/GIF/spec-gif89a.txt
section 22.
Simon Bridewell - July-August 2009
Extracted this logic from GifDecoder.cs
Added logical properties
Derive from GifComponent in order to make use of component status
Use stronger types than just byte where appropriate
Declaration Syntax
Remarks
The input stream is read, first into the LZW minimum code size, then
into data blocks. Bytes are extracted from the data blocks into a
datum until the datum contains enough bits to form a code; this code
is then extracted from the datum and decoded into a pixel index.
Once all data has been read, or a block terminator,
end-of-information code or error condition is encountered, any
remaining pixel indices not already populated default to zero.