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
I forgot to add the "__metaclass__ = ABCMeta" sentence... to be honest I was just following the ABCMeta example without knowing what was going on behind scenes... thanks for pointing this out!, now I now how it works =) (this is fixed in the latest commit, using "with_metaclass" instead)