MRG: working on top of Eric's PARREC changes

New version of https://github.com/nipy/nibabel/pull/253 with more changes on
top.

Please see original PR for comments.

This PR rebased on master.
I usually do `with warnings.catch_warnings(record=True) as w:` and then assert something about `w`. It should be fewer lines than having to call `simplefilter('error')` every time, and presumably more standard