trigger loading of source data during interpolation to avoid multiple loads

`LinearInterpolator` creates a snapshot of the source cube. If the source cube has lazy data, using the interpolator won't ever make this source cube's data concrete. Instead the data for the snapshot is loaded. So what? Well, the problem is that repeated calls to cube.interpolate() will cause the data to be loaded from disk over and over again. This can be demonstrated by:
````python
>>> import iris
>>> cube = iris.load_cube(iris.sample_data_path('air_temp.pp'))
>>> cube.has_lazy_data()
True
>>> res = cube.interpolate([('latitude', [1,2,3])], iris.analysis.Linear())
>>> cube.has_lazy_data()
True
```
This PR fixes the issue by triggering deferred loading prior to making a snapshot of the source cube.
Fair point. I only read the names of the tests, and not the actual code, hence my surprise. Better test names would have been helpful here huh?!? :smile: