Ongoing library improvemtns.

Making lil_view and lil_rect completely immutable.
Using constructor functions instead of direct struct
initialization. Adding concepts of equivalent/compatible
views and images. Adding view/image shift function.

Three new examples: arnold, blocksort, permute.