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.
I'm puzzled: Just as above (https://github.com/SciTools/iris/pull/1381/files#r19094852) this doesn't really seem to be testing anything, as no tested code is actually processing the 'mode' value -- hence it needs a separate test for an invalid setting.  
I think this could all be reduced to a single call with a dummy 'mode' value.