added timing code
memory cleanup
allocate code block memory in one go, for each tile
document
for t1 encoder, use tile data rather than creating a new buffer for each code block and copying into

that buffer
do dc shift in mct for standard lossy and lossless transform
moved max calculation to avoid re-iterating through data
t1 cleanup
fix encode code block allocation
no need to calloc the component data, since it will be over-written with actual data
make code block encoding parallizable by creating one t1 struct

per block.
use aligned malloc for t1 compressed data
for single tile encoding, simply re-use image components, rather than

allocating two copies of each component and copying into the tile component
allow superficial re-use of codec object
cache tile compressed data and number of code blocsk in codec struct

on subsequent encodes
parallelize encode and decode