Support C image functions which modify in place

Return the same *Image rather than initializing a new one in Go,
since that would cause problems with the refcounting.
Add conveniency function DecodeFile()
Add support for compositing operations

This allows drawing images on top of each others.
Add Rect() function to Image