Generalise regular interpolation.

Another step towards getting rid of `iris.experimental.regrid` and adding a new-style `Nearest()` regridding scheme.

It looks bigger than it really is - most of the action is just a lift'n'shift of `iris.analysis._linear.LinearInterpolator` to `iris.analysis._interpolation.RegularInterpolator`.

Other points of note include:
 - The `RegularInterpolator` class gains a `method` parameter which controls the nearest-neighbour vs. linear interpolation.
 - The extrapolation mode used in the private code changes from `"linear"` to `"extrapolate"` to pave the way for nearest-neighbour extrapolation. The conversion from `"linear"` to `"extrapolate"` happens in the public `iris.analysis.Linear()` API.
As discussed..
The term "regular" is due to its wrapping what scipy calls a 'RegularGridInterpolator', but this doesn't mean what we might mean by it in Iris.
I think it means distinct ordered values of independent 1-d coordinate values, so in Iris terms this should probably be called 'Rectilinear'.