Made Residual struct definition public, and documented.

This is in anticipation of implementing CPR preconditioning.
Interface and simple implementation of fully implicit system solver.

This is done in preparation for adding a cpr-preconditioning solver
for the fully implicit black-oil system. The existing implementation
that concatenates the whole system and passes it to some linear solver
has been moved from a private function of FullyImplicitBlackoilSolver
to the class FullyImplicitSolverSimple.

To enable this decoupling, the residual struct has been copied out
of the FullyImplicitBlackoilSolver class and is now an independent
struct: FullyImplicitBlackoilResidual. The opportunity has been used
to replace the field mass_balance with material_balance_eq, which is
more precise.
Use new linear solver interface in fully implicit solver.

This includes:
 - Using the class FullyImplicitBlackoilResidual instead of
   in-class definition for the residual object.
 - Changing residual field name mass_balance to material_balance_eq.
 - Letting the simulator and solver classes accept a
   FullyImplicitSystemSolverInterface instead of a LinearSolverInterface.
 - In sim_fibo_ad and test_implicit_ad, instantiate class
   FullyImplicitSystemSolverSimple, replicating existing behaviour.
Merge branch 'cpr-preconditioning' into cpr-preconditioning-again

Conflicts:
	examples/sim_fibo_ad.cpp
	examples/test_implicit_ad.cpp
	opm/autodiff/FullyImplicitBlackoilSolver.cpp
	opm/autodiff/SimulatorFullyImplicitBlackoil.cpp
	opm/autodiff/SimulatorFullyImplicitBlackoil.hpp
Changed docs/comments after review suggestions.

Suggestions from B. Skaflestad and A. Lauser.
Renamed class {FullyImplicit->Linearised}BlackoilResidual.
Modify for renamed file.

Forgot this for the initial renaming commit.
Renamed more classes.

FullyImplicitSystemSolver{Interface, Simple} -> NewtonIterationBlackoil{Interface, Simple}.
Change suggested by B. Skaflestad.
Rename method linearSolve()->computeNewtonIncrement().
Fix typo in #include (Autodiff -> AutoDiff).
Merge branch 'master' into cpr-preconditioning-again

Conflicts:
	CMakeLists_files.cmake
	examples/test_implicit_ad.cpp
Add forgotten #include <config.h>.
Update CpGrid version to use new classes.
Merge pull request #118 from atgeirr/cpr-preconditioning-again

Cpr preconditioning again
Export HAVE_DUNE_ISTL for other modules.

This is e.g. needed in the parallel version of autodiff to
test whether ISTL is there.
Search for MPI support

The build system depends on knowing if MPI is available.  Explicitly
search for MPI to honour that requirement.  Don't rely on ISTL's
transitive searching for the same.
add option to quell dune(-istl) warnings
Added more warnings to suppression list, sorted list.
Change option name and generated header names.
add support for the UG grid library

recently UG has become free software (yay!), so we can now support it
with a good conscience. The CMake module is based on the "UseUG.cmake"
module of dune-grid but it is quite a bit simpler and actually
works. (I cannot see how UseUG.cmake can work without ever including
the ug-config*.cmake files...)

the UG source code is available here:

https://github.com/ugfem/ug