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 I think you've noted, the LinearRegridder object in the test is a real LinearRegridder (not a mock) so it needs a *real* value for the mode. Rather than restrict to one test of a valid mode, arguably there should a `test_mode_...` for *every* valid mode (instead of just "error", "extrapolate", and "nan") ... so that's what I'll do.

But since there's no default value any more I'm very happy to get rid of the unused logic. Well spotted!