Symmetric diffeomorphic non-linear registration

This is a Python/Cython implementation of Avant's mid-point algorithm for symmetric diffeomorphic non-linear registration. We basically reverse-engineered the reference implementation available in ANTS.

This module includes the basic features for volumetric registration:
* The SyN algorithm using free-form deformation fields (a displacement vector per voxel) in 2D and 3D
* Two metrics: Sum of Squared Differences (SSD) and Cross Correlation (CC) 

To validate our implementation, we reproduced the results reported in Rohlfing's [1] paper to make sure we can obtain equivalent results as ANTS with the same number of iterations. This validation consists on registering 18 manually annotated brains (the IBSR database) with each other (306 registrations in total) and comparing the overlap of 31 anatomical areas after registration using the Jaccard index. 

Since this is a long pull request we would also like to have a hang out to explain the main structure, algorithms and tests so that it's easier for you to go through the code.

[1] Rohlfing, T. (2012). Image similarity and tissue overlaps as surrogates for image registration accuracy: widely used but unreliable. IEEE Transactions on Medical Imaging, 31(2), 153–63. doi:10.1109/TMI.2011.2163944
Sorry - I think, in the commit changes, we lost the discussion about whether this list should go from fine to coarse, or coarse to fine.

So - Omar - would it be odd to make this variable go from the top of the pyramid to the bottom?  (I think that's coarse to fine)?  Or is there some tradition of naming in a paper somewhere which would make this confusing?  Maybe an explanation in the docstring would be enough to reduce the confusion for the person reading the paper?