Much improved pixel_t based on the magic of reinterpret_cast, not the most ideal solution but much better than what was there before.

The solution is based on the use of reinterpret_cast.  When dereferencing an iterator the pixel_t& recieved is merely the iterator disguised as a pixel_t& using reinterpret_cast.

This allows storing only the pixels in a contiguous memory block recieved from some third party libary, while still being able to inject dynamic behavior based on the format of the pixel when performing operations on pixel_t such as addition, subtraction or multiplication...

The member _unused in both structures provides a mechanism for recognizing whether or not we are dealing with an iterator masquerading as a pixel_t or an actual pixel_t with its own value.

_unused = 0; this is a regular pixel_t with its own value.
_unused = 1; this is a bitmap iterator masquerading as a pixel_t& ref.