Use traditional "shrink-to-fit" idiom

This restores build with libstd++ debug mode (GCC 4.6).
Added access methods needed for fully implicite blackoil in opm-autodiff.

Namely:
- Access to begin iterator over the cells and faces.
- Access to the faces of a cell.
[CpGrid] Make the objects return by begin{Face,Cell}Centroid iterator over centroids.

This in line with the last changes to opm/core/refactor-for-cpgrid. The iterator returnd
now has the centroid (aka FieldVector<double,3>) as value type.
removed superfluous const from value type
Merge pull request #71 from bska/fix-shrink-to-fit

Use traditional "shrink-to-fit" idiom
Added function to query the number of faces.
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