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
The reason it goes from fine to coarse is to make it consistent with the order of the Gaussian Pyramid: the 0th level ("base" of the pyramid) corresponds to the original image with no smoothing (the "finest" image) and the [n-1]th level is the one with the largest smoothing (the "coarsest" image). In ANTS the iterations array goes from coarse to fine though, if you guys think it may be confusing, we can change it.