Merge pull request #3412 from juliantaylor/float128-i386

BUG: import longdouble instead of float128
MAINT: move vectorized sqrt to own static function
ENH: Vectorize float absolute operation with sse2

fabs on x86 can be implemented by masking out the sign bit.
Obtaining such a bit pattern is best done by a bitwise not on the
negative zero.
This is the same operation the compiler will convert fabs to on amd64.

Improves performance by ~1.7/3.5 for float/double for cached data
and ~1.4/1.1 for non-cached data.

If one simplifies the loops gcc could also autovectorize it but with all
hints its almost the same code length and slightly worse assembly.

The code can easily be extended to support AVX by changing vpre and
vtype to 256.
MAINT: fix shape mismatch issue in alignment data generator
MAINT: make the simd function signature more specific
MAINT: use @vpre@ for simd sqrt intrinsic prefix

allows simple extension to AVX
MAINT: remove duplicate vtype template
MAINT: move simd functions to new file simd.inc.src

SIMD functions are called via a minimal dispatcher function.
Minizes extra code in loops.c.src and hopefully transparently allows to
simply enable more complex (runtime) dispatching rules.