NF: add __eq__ to MGHHeader

With tests.
RF: removed unused test code

Code not being run because error was raised in previous lines.
NF: add get_slope_inter to MGH for compatibility

Later we will need ``get_slope_inter`` for an ArrayProxy refactor.
Adding this method makes the MGHHeader closer in API to the Analyze
headers which may make things easier.
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.
NF: add helpers for bytesio round trip of images

To use in tests.
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