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.
[buildsystem] Make dune-cornerpoint a suggestion.
Added implementation of free function interface grid interface for CpGrid.

This implements a superset of the interface as proposed in pull request
 opm-core#496 for use with CpGrid.
It also adds some additional functionality needed in opm-autodiff.
Removes the dependency of FullyImpliciteBlackoilSolver onto UnstructuredGrid.

With these changes it will be possible to use CpGrid with FIBOS except for the
output routines.
Add an example program of FIBOS that uses CpGrid.
Added function for querying the face area to the helpers.
[bugfix] Fixes elementAt of CentroidIterator.
Removed last occurence of the grid adapter in the EclipseOutputWriter.
Implemented VTK output for CpGrid using DUNE's VTKWriter and activated Matlab for CpGrid.
Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support

Manually resolved conficts in the following files
	examples/sim_fibo_ad.cpp
	opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
	opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp

In additions examples/sim_fibo_ad_cp.cpp was adapted to compile again.
Activate paralle istl solvers if there is more than one process computing.
Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support

Conflicts:
	examples/sim_fibo_ad.cpp
	opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support

Resolved conflicts:
	opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
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.