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.
Not your fault but..
this currently makes no use of 'dtype', which seems extremely pointless