These changes allow the interpolation function to cache its last value, which keeps prevents execution from entering the for-loop.
Unfortunately, this means we lose the "const" qualifier on a number of the methods
Dropped a const qualifier on the grain_system class to account of previous change to the InterpolatingFunction class.
Changed for loops for testing and changed outside loop to integer indexing thereby allowing OpenMP parallelization.
Added a note regarding initial conditions for perennial grain systems
We don't need to do a full range check on the for-loop if we assume that the interpolating points are pre-sorted by x-value.
This speeds up execution on the current test code in simulator.cpp by about a tenth of a second
Rewrote using a point object to abstract data storage. This permitted a nice rewrite using pointers.
Unfortunately, it changes the initialization interface.
Since InterpFunc interface has changed, many changes were necessary to update the initialization sequences.
Elimination of last-valuing caching within allowed restoration of const qualifiers