BUG: cast pchip arguments to floats

As noted in https://github.com/scipy/scipy/issues/3453#issuecomment-45812768, `pchip` interpolator goes nuts when given integer input. This PR makes sure the arguments are cast to floats. 
It avoids making a copy and multiplying when this is not needed. The speed/memory difference is probably not important here as there's lots of arithmetic on the arrays in what follows.

But it's imho slightly better style to be more explicit on the intent.