NF: add set_data_offset method to Analyze headers

To help proxy API tests, and for completeness
DOC: update docstrings for arrayproxy and helper

Fill out API doc while thinking about API testing.

Another tiny docstring update.
RF: apply_read_scaling fix for integer slope/inter

``apply_read_scaling`` should be able to cope with integer slope and
intercept values, although we aren't using these in the code-base yet.
TST: add arrayproxy API validators

Add API validators for the basic arrayproxy uses (Analyze types, MGH
format).
RF: proxy uses header fields, deprecate header copy

Plan not to copy header for the array proxy. Copy out the relevant
header fields and do scaling in the proxy.
RF: refactor general proxy API into own class

Put general API testing into its own class ready to test other array
proxy classes (such as MINC)
NF: add read-only shape to Minc array proxy

Writing API validators revealed shape was not read-only.
RF: rename test for minc2

Test still had minc1 naming
TST: add minc1 / minc2 proxy tests

Use generalized test framework to add minc1, minc2 array proxy tests
NF: add is_proxy attribute
TST+RF: add ecat tests with read-only attrs
RF+TST: make Analyze slope, inter, offset public

We may want to look at the slope, intercept, offset directly.  I can
imagine situations where you'd want to change slope, inter, to get free
rescaling of the images.  I don't know whether that's a good idea - to
make it part of the public API.
Merge pull request #203 from matthew-brett/proxy-validators

MRG: array proxy API validation; proxy refactor

Add ArrayProxy API validation. Extends tests a little for array proxies,
prepares for extending the API for array proxies.

Refactor ArrayProxy to copy out fields it needs from the header, but deprecate
the header copy (it can be large), so we can just keep the fields from the
header that we need.
RF: use decodebytes() instead of deprecated decodestring()
RF: use "with" statement when opening file
RF: use "with" statement when opening file
ENH: use {en,de}codebytes or {en,de}codestring depending on Python version
DOC: tiny comment edit
Merge pull request #217 from nno/_tent/gifti_deprecation

RF: use decodebytes() instead of deprecated decodestring()

With python 2 / 3 compatibility
API: set offset to zero when creating images

For Analyze types, treat the file offset as consumable. So, set to zero
when creating an image object, and set to the necessary (mimumum) offset
when writing the header.

If the user sets the offset directly to a value other than zero, use
that value or raise and error if it is too small.