RF - fill out arrayproxy object and add tests

Arrayproxy was previously a partly-specified API.  Fill out the API with
the analyze implementation and add tests.
RF - use arrayproxy object for Analyze, MGH format

Arrayproxy is now capable of supporting Analyze / Nifti types and MGH
types.
TST - add test that analyze type images pickle

Thanks to Gael for pointing out the problem.  Fixes gh-77.
Merge pull request #79 from cindeem/master

ecat fix for mis-ordered mlist
Merge pull request #87 from matthew-brett/extend-arrayproxy

Extend arrayproxy

Refactor arrayproxy to contain a real implementation rather than an API shell.

Use this in Analyze-type and MGH format images.

Test that this fixes pickling, as suggested by Gael in https://github.com/nipy/nibabel/pull/80
BF - work round numpy 1.5.1 bug for zeros_like

Michael spotted a test error for the working_type function, and complex
values.  This turned out to be an obscure bug in ones_like, zeros_like
for numpy 1.5.1.  Work round this bug in working_type function.
RF - refactor ability to load compressed .mgz file

Check for .mgz extension directly before calling parent method. This
allows people to use .mgh.gz files if they want.  If that's not a good
feature, the compressed_exts class attribute could be () to disallow
this.
BF - avoid complex types for SPARC / gcc

Complex types cause bus errors on numpy 1.4.1, 1.6.1 and current (as of
6 March 2012) numpy development versions, on SPARC64, on Debian.
BF - only update header if affine not close

Discussion at https://github.com/nipy/nibabel/issues/55. Because affine
in nifti1 stored as float32, using == to check if affine has changed
would give false positives, comparing to float64 input.  Brendan Moloney
kindly suggested allclose fix.
RF - test fails from numpy variability

The cast assumptions seem to differ across platform (different for SPARC
and others) and across numpy versions.  The nibabel code promotes
scalars to arrays for scaling, so this casting should be stable and we
don't need to test it.  So - delete failing test, problem solved :)
Merge pull request #73 from matthew-brett/cleaner-array-writers

Cleaner array writers

A fairly large set of changes to make the conversion between float and int, in particular, safer. Previously it was possible to reach undefined behavior with large floats being cast to int.

Some tests, not yet committed, suggest that these changes are more accurate than current trunk in some cases, and not less accurate.

Merge to get the changes tested.  I will commit the tests soon, and an analysis of when errors would be expected in the old code.
NF - add travis CI setup to repository

``.travis.yml`` file useful for automated testing on commits, on the
Travis-CI service.  Not current enabled for nipy/nibabel repository, but
useful for user repositories.
NF - type_info function with tests

Function to get nmant etc from type.  Works round PPC bug in finfo.
RF - replace flt2nmant with type_info

Use type_info nmant estimate.
RF - make sure min max are of input type

The iinfo and finfo types don't guarantee this.
RF - remove flt2mant in favor of type_info

flt2mant too small to be fun to leave in the API
RF - refactor type_info to handle all complex

Don't check nmant etc logic for types where we can be confident (e.g.
float32)
RF - use type_info for min, max

Replace uses of np.finfo with type_info() function to insulate against
errors in the finfo results for longdouble on PPC.
HACK - disable some floor exact tests for PPC

The significand digits for longdouble on PPC (double-double pair) appear
to be conservative, so the tests for behavior outside the integer range
fail, because we don't know what the integer range is.
Merge pull request #89 from matthew-brett/mgh-mgz-refactor

RF - refactor ability to load compressed .mgz file