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
Merge pull request #187 from matthew-brett/img-properties-api

MRG: make data, affine, header properties, test API

Add:

* img.header - prefer to img.get_header()
* img.affine - prefer to img.get_affine()
* img.dataobj - direct access to old img._data

Add tests of image API so that someone implementing a new image type can
test whether they conform to the API.

Use the API tests to check the new properties.