RF: allow command runner to also set path and test

The command runner did not take into account that we'd have some scritps
to test.  Add ability to add script directory to path, and make some
tests.
BF: add pass of script path to sdist_tests

I wasn't passing the script path and therefore not collecting the newly
installed scripts.

The scripts need the package to be on the python path for their
subshells, so we also need to set PYTHONPATH for script calls.
RF: allow passing of label and doctests to testers

Useful if we want to run a subset of the tests.
RF: add check for symmetry of B matrix, use eigh

Some dicoms that Satra tested on were giving complex q vectors.  Add
check for symmetry of input B matrix, and use symmetry to guarantee
real-valued eigenvectors using ``np.linalg.eigh``.
RF+TST: adjust eigenvalue threshold slightly

Adjust default eigenvalue threshold for negative eigenvalues according
to the MATLAB algorithm - although it will have a tiny effect.

Test the default threshold, and setting threshold.
NF: add script installation helpers from nipy

Add windows script installation helpers from nipy.  This may fix
chronically broken windows script installation.
NF: tests for scripts

Some basic tests for scripts. mostly for presence of smoke.
NF: add openers module with tests

openers module contains Opener class.  Class provides unified interface
to opening various file types, and context manager to close files that
have been opened.
RF: refactor allopen to use Opener classes

Add and deprecated compatibility allopen function.  Prefer BinOpener
class.
RF: replace allopen with BinOpener context manager

Use the context manager in obvious places.
RF: use context managers for get_prepare_fileobj

Context managers should take care of file opening and closing
automatically.
RF: use close_if_mine in trackvis reader

Closes file if we opened it.
ENH: Adding vox2ras_tkr
FIX(?): Add zooms test
FIX: Deal with borked test dataset
FIX: Match MRIRead.m
FIX?: Order
RF: make header update only if changed affine

We were having trouble with the header updating on load of an image, and
changing the underlying header information.

https://github.com/nipy/nibabel/pull/164

Use the Analyze trick to only update the header if the affine has
changed.
BF: with new save affine algorithm, zooms=1

No we are not resetting the deltas on loading the image, we should get
zooms of 1 from the test image.
Merge pull request #1 from matthew-brett/setting-mgh-affines

Setting mgh affines