Refine OpmFind according to Roland Kaufmann's suggestions.

This enables us to restore FindEigen3.cmake to its original
state (as copied from Eigen sources).
Bugfix: convert array to matrix type for matrix multiply.
Fixes in computeFluxes().

 - Give AD variables the correct block pattern (although as we
   change fluid interface they will not need to be ad types).
 - Make sure 'flux' is only on inner faces.
 - Copy full fluxes to state.faceflux().
Print face fluxes after solve.

Also define the HACK_INCOMPRESSIBLE_GRAVITY symbol, since test case
is meaningless without it.
Refactored ImpesTPFAAD to use BlackoilPropsAd interface.

Not yet tested, but compiles and runs. Stops on error message
due to lack of viscosity derivatives.
Test case working again with new fluid.
Clean out dead uncommented code.
Remove more unused code.
Moved UpwindSelector out of anonymous namespace.
Added Selector class.

Used to choose element-by-element between two (potentially AD) vectors,
depending on signs of elements of a third vector. Simple and not optimized.
Can now solve with bhp-controlled wells.

Simple initial code. Assumes that well_state.bhp() contains
well bhp targets, does not check control structures.
Make float accuracy fix the main path. Remove alternative path.
Added utilitied collapseJacs() and vertcat().

The utilities are not optimized for speed, but make it easy
to construct a linear system from all the jacobian blocks.
Make the test run a simple bhp-controlled case.
Added well equations.

Residuals are not yet used for loop control.
Use all eqns for residual evaluations.

Use new wellRates() member of WellState.
Removed extra init that is no longer necessary.
Now accepts both BHP and SURFACE_RATE wells.
Change example to use a surface rate constraint for one well.
Removed unused experiment with armadillo replacing Eigen.