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.
Adds -= operator
An elementwise -= operator is added to the autodiff class.
Adds new well formulation
Todo: incorporate WellDensitySegment. Currently values of the pressure
drop is hardcoded to make the rest of the code work
Todo: make it possible to shut perforation with crossflow.
[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 'totto82/new_well_formulation' into new_well_formulation
Whitespace fix.
Minor whitespace adjustments.
Work in progress: use WellDensitySegmented class.

This is work in progress since it is non-working: phaseRates() is
not used correctly, and changes must be made to WellState or equivalent.
Merge branch 'master' into new_well_formulation

Conflicts:
	opm/autodiff/FullyImplicitBlackoilSolver.cpp

To resolve conflicts, WellState was changed to WellStateFullyImplicitBlackoil
in multiple places, and perfRate() changed to perfPhaseRate() in
WellDensitySegmented.
Merge branch 'master' into new_well_formulation
Fix sign bug in well contribution to mass balance.