ENH: Improve par-rec support

Goals:

* [x] Detect and correct mis-ordered acquisition (e.g., x, y, t, z).
* [x] Detect and return multiple echoes in dataset.
* [ ] Detect and optionally permit missing data (e.g., run too short, doesn't contain full dataset). Current support is partial, since differing scale-factors will not work with truncated recordings currently.
* [x] Add file overwrite checks and option to overwrite.
* [x] Correct output if there are multiple data types in same recording with different scale factors (phase contrast vs complex).
* [x] Output DTI b-values and vectors, if recorded.
* [x] Output dwell time.

Although it's not 100% complete, it would be good to get a round of review to make sure I'm not way off.
@matthew-brett for example, could I somehow move this into my `pr_hdr.as_analyze_map` function so that I wouldn't have to set it in `nhdr` in `parrec2nii`? I think from your comment I'd need to update my dict returned by `as_analyze_map`, but I don't know how exactly (as_analyze_map doesn't seem to be used anywhere other than in `as_analyze_map`, where it's not clear what's happening).