WIP: Fix PAR/REC support

WIP. From https://github.com/nipy/nibabel/pull/227, I have the following targets:

*[x] Mis-ordered acquisition (e.g., x, y, t, z).
*[x] Multiple echos in dataset.
*[ ] Missing data (e.g., run too short, doesn't contain full dataset).
*[ ] Multiple data types in same recording with different scale factors (phase contrast vs complex).
*[ ] DTI b-values and vectors are recorded.

Note that I added the second point about multiple echos (wasn't made clear in the original posts). The first two should be corrected with this PR. @matthew-brett we can either go through the review->merge cycle now, or you can wait until I get through more factors. I'd recommend review/merge now to reduce future reviewing burden. Note that I've also corrected a number of PEP8 errors in the code, but I can pretty easily revert+squash those if you don't like the changes.