Cleanup of linear interpolation utility

This addresses the following issues:
 - There were two separate headers (linInt.hpp and linearInterpolation.hpp) providing almost identical functionality.
 - A specific corner case (used to return 1 for the derivative when at the end of the domain) could create problems for Newton solvers etc that expected continuity. Now using linear extrapolation instead of constant extrapolation outside the domain.
 - Unit tests for NonuniformTableLinear and UniformTableLinear have been moved to opm-core from opm-porsol

There are changes required in opm-porsol resulting from this.