MRG define fused types in chi2 for less code

Fixes #1522.
This causes the C code to only contain two versions of the function, one for float and one for double, not 8 as before. Actually the decrease in file size is only from 22700 to 20708, so I'm not entirely convinced it is worth it.
The functionality of the code doesn't change.