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.
It was written in this odd way when it was first introduced in #1089. I'm guess the idea was to set the dtype of the cube's data before the interpolator was called ... so that's what I'll do.