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. 
```
x = np.asarray(x)
if not np.issubdtype(x.dtype, np.inexact):
    x = x.astype(float)
```
It's a bit annoying Numpy doesn't have a function for this...