bugfix: rangechecker returns extra elements

The way it was written, RangeChecker was actually changing the requested
range. It inserts the elements it wants, and then requests extra
elements from the next factory in line.

Preventative Measure: a debug statement was added to the window. It now
verifies that the number of elements returned from the factory exactly
matches the number of elements it asked for.

This change also introduces two new methods for the Command Factory.
First revision of visual interpretation

Images can now be viewed visually. Whenever any bytes for a compressed
image comes onscreen, that image is shown with a default dump palette,
at its default size. The width and height are guessed.

Future revisions may involve manually setting width/height, showing the
image on pointers to the data, changing between 16bit and 32bit,
ordering interpretations to appear in the same order as the data, and
highlighting the part of the data interpreted to create the image.