NF: add copy of OrderedDict for Python 2.6 compat

DICOM will need OrderedDict; copy in the external module until we
require Python 2.7
Merge pull request #239 from matthew-brett/add-ordereddict

NF: add copy of OrderedDict for Python 2.6 compat

DICOM will need OrderedDict; copy in the external module until we require
Python 2.7
NF: add iter method to Openers utility class

parrec uses iteration over lines of a text file; implement this in the
Openers wrapper and test.
NF: add PAR / REC data for testing

Thanks Michael H for releasing it.
NF: add skeleton for tests for PAR/REC conversion

Test against values from converted NIfTI header
RF+BF: refactor parrec to use latest nibabel

Adapt to BinOpener fileobj object as input.

Change returned TR value to seconds instead of milliseconds.

Add get_data_offset and get_slope_inter methods for compatibility with
standard ArrayProxy object.

Add option to set default scaling as input to header __init__
TST: add test of parrec2nii script

Use new PAR/REC data and Philips converted nifti image to test against.
RF: change slice orientation names for par/rec

Change 'transversal' to 'transverse'; 'sagital' to 'sagittal'.  I think
these are the standard names:
http://en.wikipedia.org/wiki/Sagittal_plane
RF: some python 3 fixes for par / rec stuff

numpy strings expected to be bytes, not strings.

Files must get opened with binary flag.
RF: python 3 fixes for openers test

Make bytes / strings explicit.  gzip doesn't appear to allow opening for
read in text mode in Python 3.
TST: Verify PARREC affines differ in the right places

This does not address the issue mentioned in gh-227 that Philips own
NIfTI conversion yields a different offset column in the affine.
BF: parrec2nii ignored FH image offset

Part of the problem in gh-227
DOC: pep8 + expand / format docstrings for parrec

Newlines between methods; docstring formatting and adding docstring
return value descriptions; expanded description of format.
RF: avoid setting data offset of 0 if already set

read_img_data trying to set offset of 0 even when offset is already set
to 0, therefore breaking for headers that can't do ``set_data_offset``.
Check whether value is already 0, don't set if so.
RF: error if trying to set par data offset !=0

par header format enforces data offset of 0.  Implement set_data_offset
for par header enforcing this.
RF: remove use of deprecated read_img_data

Replace with recommended ``dataobj.get_unscaled`` method.
TST: add regression tests for affine

Test we're getting the same affine as we were (it may be the wrong
affine, but at least it is our affine).

Test we're getting the same-ish 3x3 component as the Philips generated
NIfTI image.
DOC: fix errors in top-level docstring

A few typos and thinkos
DOC: fix tiny typo in docstring
RF: refactor parrec affine, possibly breaks stuff

* Rephrase the transformations in terms of LPS instead of RAS in the
  hope of making the code easier to read
* Remove safety-net for the rotations, I'm confident the r2agui approach
  and euler2mat do the same thing.  For clarity, unpack the order of
  rotations with euler2mat in case we need to fix the order later.
* Use voxel FOV to get FOV offset in voxel space, then transform to get
  the FOV offset in mm

It's possible this refactoring breaks or fixes handling of
non-transverse images - we really need some of those to test against.