Table improvements

This PR contains various improvements related to the tables code, most importantly that tables can now be fully or partially defaulted if the documentation says they can and that the monotonicity requirements for the columns are ensured. Moreover, 1D table objects can now be evaluated at an arbitrary position, which will come in handy for https://github.com/OPM/opm-parser/pull/278. Finally, since creating the table objects is pretty tricky, we now work hard to make the user not to do that because this should only be done by the EclipseState class. The latter change implies quite a few pull requests for the other modules which should be merged synchronously with this one if the build should not fail:

- https://github.com/OPM/opm-core/pull/652
- https://github.com/OPM/opm-autodiff/pull/203
- https://github.com/OPM/ewoms/pull/7
- https://github.com/OPM/opm-material/pull/18
- https://github.com/OPM/opm-porsol/pull/112
- https://github.com/OPM/opm-polymer/pull/67

as usual, the series should be fully bisectably, i.e. it should compile at any point and all unit tests should pass...