NF: add helpers for bytesio round trip of images

To use in tests.
RF: expose dataobj, affine, header image properties

As threatened on the list, expose the image data container directly as
`dataobj`.  Move the code for caching the read data out of the image
proxy objects and into the image classes.

Expose `affine` and `header` properties, add docstrings for `get_affine`
and `get_header` to warn of pending deprecation.
NF: add uncache method to image base class

Tests to follow in image API checks.
TST: add get_data test method for base class

Test dataobj and cache interface for base class and derived types.
RF: add generic image tests to mghformat and minc

Modify TestSpatialImage to accomodate MGH and MINC format.
NF: add API validator metaclass

metaclass to run API checks on multiple object instances.
TST: add image API tests using API validators.
DOC: document the image API

With doctests