## Add linear interpolator and use it for scaling fields

### Description

A linear interpolator takes point values (as opposed to the available nearest-neighbor interpolator which takes cell values) on a regular grid and evaluates the local linear interpolation of the nearest four vertices for any position of the grid.

Evaluation can be done by solving simple linear equation systems as given in the Wikipedia articles for Bilinear and Trilinear interpolation.

### Proposal

- Add a linear interpolator with specializations for 2D and 3D.
- Enable using the interpolator for scaling field input.

### How to test the implementation?

- Add a unit test for the linear interpolator
- Use it in the unit test for a scaling field

### Related issues

- #122 (closed): Support for arbitrary initial conditions
- #133 (closed): Load initial condition from file and interpolate