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.
So that you don't get lost in the sea of PEP8 changes, this is a substantive change, and the one that fixes the XYTZ ordering.