Allow irregular interpolation with differing types

This relaxes InterpIrregular grids to allow their grid and coefs to be of a different type.  This allows, for example:

    julia> InterpIrregular([1.,2.,3.], big([2.,3.,4.]), 0., InterpLinear)[1.5]
    2.5e+00 with 256 bits of precision

    julia> InterpIrregular([1.,2.,3.], big([2.,3.,4.]), 0., InterpLinear)[1.5:2.5]
    2-element Array{BigFloat,1}:
     2.5e+00
     3.5e+00