Added required dependencies on opm-parser and CJSON
Set the boost version requirement to 1.44 - and added cJSON dependency
Removed explicit cJSON dependency from opm-core
Added CJSON_INCLUDE_DIRS to OPM_PARSER_INCLUDE_DIRS
Raised the opm-core boost dependency to 1.44 to reflect parser requirement
If given build tree as Eigen3 root, find source

Eigen3 is a template-library, so we must compile the source code
directly together with ours instead of linking to a library.

If the build script gives us the location of a "built" Eigen3,
meaning a directory in which CMake has been run, locate the true
source directory from the cache entries.
Search after new Eigen3 versions in sibling dirs

If we have checked out a newer Eigen3 directory in a sibling directory
to ours, assume that this is because the system version is obsolete and
that we want to use this one instead.
Provide CMake find module for opm-autodiff

If the module root is not explicitly specified, the loading of its
configuration is delegated to a find module, which does a heuristic
search in known/surrounding directories. Most OPM modules use the
common logic in OpmPackage; this patch configures the search
specifically for opm-autodiff.
Only add linker option if it is not really there

This code is run unconditionally each time we do a reconfigure; if the
option is added at each time, they will accumulate (needlessly) on the
command-line, making it harder to inspect the log.
Document modules and structures in the build system

Give a brief description of each of the modules that comprises the build
system, and the suffices that is used to form a virtual structure of
variables for each project.
Terminology instead of Notation as section header

Notation implies that we are going to be given symbols which
represents values or such (which arguably could be true since the
path is a particular value, and from programming we are used to
multi-letter symbols perhaps also with whitespace, but it's a
stretch), but Terminology is more accurate, as this section
describes fits the definition better: it is a vocabulary of
technical terms.

Hat tip: @bska
cmake: make sure all calls to message() exhibit a type
OpmFind.cmake: prevent multiple calls to the same module in the same run

this prevents to check for the same module more than once in the same
cmake run and should thus speed things up a bit as well as make the
output a bit cleaner. For this I assumed that the ${name}_FOUND cmake
variable does not get cached, which it seems like it does not...
OpmFind.cmake: also check for CAPITALIZED found variables

thanks to @rolk for catching this
Create aliases for probed variables

Headers from other libraries (notably DUNE) require definitions of
other variables than our probe process set (e.g. HAVE_UMFPACK instead
of HAVE_SUITESPARSE_UMFPACK_H). This module sets those aliases for
compatibility.
Declare a need to know if UMFPACK is available

Note that the variable HAVE_UMFPACK is not set by FindSuiteSparse,
but by OpmAliases.
Declare a need to know if BOOST is available

Note that the variable HAVE_DUNE_BOOST is not set by FindBoost,
but by OpmAliases.
Corrects required version and make Eigen3 download work.

At least on Debian requiring version 3.1 of Eigen3 is not sufficient
according to issue #25 the minimum version is 3.1.2. This patch fixes
the required version. In addition it skips the REQUIRED option passed
to find_package(Eigen3) to make the git download work.

Fixes #25.
Makes arbitrary build subdirectories possible.

Instead of guessing the suffix or subdir of the build directory,
we now simply compare PROJECT_{BINARY,SOURCE]_DIR to detect it.
By this e.g. opm-core/opm-parallel is a possible build directory, too.
Whitespace change that replaces introduced tab with spaces.