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.
RF: make default offset 0 for nifti headers

Set default offset to 0 (signalling - 'do what you need to do') rather than
setting offset to allow for length of header in single image.
BF: make SPM image offset checks depend on scipy

We were getting errors with scipy not installed; guard offset checks
with checks for scipy.
BF: fix missed extension status check on Python 3

Python 3 was doing the check wrong for extension status == 0; integer
slicing into a byte array results in an integer, so comparison of this
integer against a byte string was always false.  This is OK as long as
the offset is default, but gives an error later if the offset is higher
than the default minimum.
Merge pull request #213 from matthew-brett/zero-offset-on-load

MRG: reset file offset to zero creating image

This is a minor API break.

Before this PR, you would read an image, and the header would contain the data
offset value. For single file images, the data offset would typically point to
the end of the header, but it's also possible to have data at the beginning of
a file that is not part of the image. So the 'offset' field would be non-zero -
say 400.

When using this header to write out an image, or initialize a new image, the
offset field gets maintained - so the newly written image, and any image based
on the same header, also have an offset of e.g. 400.

This doesn't make much sense usually - because - if we save images to
filenames, we open 'wb' and write the whole file, so even if an existing output
image file had something interesting from 0-400, it would get overwritten with
zeros in the default write process.

The only time this doesn't happen is if you open the file object in append mode
and pass that into the image creation - but this is obviously rather rare.

This PR sets the offset to 0 in the header each time we create a new image or
load an image. The 0 signifies 'modify at will' to the code. The writing code
then sets the offset to whatever value is necessary.

If you really want to set the offset to a specific value, you can do that by
hand with:

img.header.set_data_offset(400)

in which case the writing code uses that offset, or raises an error if the
offset is too low.

This PR addresses : #105