Support uneven grids in one dimension
Implement vectorized evaluation and make of type AbstractArray

This is a big, disruptive change: most importantly, it changes the
behavior of g[x::Vector]. Formerly the elements of x would have been
interpreted as the coordinates, so x was implicitly of length
ndims(g). With this commit, we switch to the more typical
AbstractArray indexing scheme, where g[x::Vector] would now be
interpreted as evaluating g at all the 1-dimensional positions listed
in x.

It is not possible to do this by deprecation, so this is a major
potential source of bugs. However, the old behavior broke naive
expectations, which was deemed to be a more significant problem.

This also:
- renames InterpUneven->InterpIrregular
- centralizes all the export statements, making it easier to see the public interface
Fix declaration for BCfill case
Allow InterpIrregular to work for ranges as well as vectors
Disallow construction of BCfill InterpGrids without supplying fill value
Correct return type for dx in InterpNearest
Eliminate undefs by checking for 0 coefficients

This has a performance penalty, unfortunately; let's try
this and see how bad it is.
Expand and improve tests
Support both array and tuple inputs for finite differencing