Hack to support bugs in dune-grid 2.2.0

This particular version of dune-grid tested the define ENABLE_ALUGRID
instead of HAVE_ALUGRID, which was the intention. Our build system
doesn't set this define, so we do it here before including in case we
have that version.

It should otherwise be harmless, since HAVE_ALUGRID should only be
defined in DUNE if ENABLE_ALUGRID is true (1) anyway.
Don't search for disabled packages

Setting CMAKE_DISABLE_FIND_PACKAGE_xxx flag should make find_package
not doing anything, but this does not seem to work with older versions
of CMake. Anyway, we can test this flag and make sure that we don't
call find_package in that case.

Also includes a check for both upper- and same-case versions of found
flag, as some modules, most notably Boost, does not set the upper-case
version of their _FOUND flag; this tests for both.
Only require METIS if ALUGrid is built for parallel

If we have a parallel ALUGrid, then we must also link with METIS. If
METIS is not available, then parallel ALUGrid should be disabled. If
we have a serial-only ALUGrid, then METIS is not required.
Add Eigen3 CMake find module

Imported from cmake/FindEigen3.cmake in Eigen 3.1. It is licensed
under the 2-clause BSD, which should be compatible with GPL as long
as the build system is distributed as source.
Allow user to specify path to Eigen3 library

By setting EIGEN3_ROOT, we can point directly to the path of the
library checkout we want to use. No other searching will then take
place.

Notice that if you have found an Eigen3 installation in a previous
configure, it will not find a new version even if you introduce the
EIGEN3_ROOT variable!
Allow mixed case name in variable (as for package)

Since the package is named Eigen3 (in mixed case), we should allow
for the variable to be named this way, too.
Use standard code to handle not found case

Instead of setting EIGEN3_FOUND ourselves, rely on the standard method
to check arguments and raise an error if not found.
Search common suffixes for include files

This allows us to set e.g. -DEIGEN3_ROOT=/usr/local, and have the
files actually be located in /usr/local/include/eigen3
Require the newer 3.1 version of Eigen
Add support for Eigen3 in Autotools compatibility layer
Issue a CMake warning if client project is incompatible

This puts a test into the ${project}-config.cmake file which warns
if the client project is built with a variable which is incompatible
with the build of opm-core.

Consider this minimal project:

    cmake_minimum_required (VERSION 2.8)
    set (HAVE_MPI 1)
    find_package (opm-core)

If linked with `-Dopm-core_DIR=` path to an opm-core tree which is
build *without* MPI-support, this will issue a warning when building
the client project.

This doesn't catch all cases (if a variable isn't defined, we cannot
know if it is an omission or if it has intentionally been left blank),
but at least it catches some.