Fix diffeomorphic registration test failures

This PR fixes issue #464. This issue was caused by differences in floating-point operations when using double precision (64 bits), extended precision (80 bits) or a combination of both, whcih depends on the platform, compiler and compilation options used. 

In summary, these are the proposals implemented in this PR:
1. We always attempt to compile with SSE2 instruction set when available, so double precision will be used instead of x87, this way we obtain more consistent results across platforms in general, not only the registration module. If SSE2 is not available, the regression tests (only 10 test cases) are skipped .
2. We modified the interpolation methods to make them more stable when attempting to interpolate beyond the image boundaries. Here is a discussion related to this: https://github.com/scipy/scipy/issues/4075.
3. In addition to adding the user-defined DEF's for optional compilation in the .pxi file, we write the same defs to dipy/\_\_config\_\_.py file to have access to that information from python. These defs are used in the tests to select the appropriate "oracle" energy profile.

pep8: one empty line between code blocks inside functions