Enable dunecontrol to use a build tree as module dir

dunecontrol looks for a dune.module to determine whether a directory
contains a module or not. By copying this file to the build tree, we
can use (out-of-source!) build trees in dunecontrol too.
Only warn for unknown --enable/--with options

Follow the guidelines in
<http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/
html_node/Option-Checking.html#Option-Checking>
and print a *warning* if there is an unknown --enable-* or --with-*
option, error otherwise. --disable-option-checking does not turn off the
errors, but silences the warnings.
Allow variables and options in any order

Traditionally, options are put before any other command-line arguments.
However, dunecontrol puts variable assignment before options, like env,
and this confuses getopt.

This variant (based on a suggestion by Andreas Lauser) collects the
variables into an array at the same time as the options are processed.
Only make actual directory names canonical

If the directory that is specified does not exist, then keep the path
as entered, which makes for better error messages later.

We cannot print an warning on a non-existent name, because it may be
target directories that are specified, or perhaps logical options
(like --with-mpi=yes)
Determine that ERT is not found, faster

Instead of checking every pre-requisite and then determine if the
library is functional, quickly check if the library directories are
present, and if not bail out. The most common reason that ERT is
not usuable, is that it is installed, not that something else is
missing!
Bugfix wrong variable used

But since it added the option anyway, this was hard to catch (unless
one was trying to set both options at the same time)
Disable use of OpenMP by default

If support for OpenMP should be added, it must be specified by
setting an option. If not, then warnings for unknown pragmas are
disabled, so that the code can have #pragma omp witout getting
messages during build.
Use keyword supported by older version of CMake

The CONFIG keyword to find_package () was introduced in 2.8.8 while
NO_MODULE works for the entire 2.8.x series.
Provide function that identifies compiler to patch-level

Some distributions modify -dumpversion so that it only returns major
and minor numbers, not the patch level. This is usually OK for
determining features, but when debugging the output log, we really
want the full number.
Print compiler version number when configuring
Update regular expression to handle more variants

Older CentOS versions returns the version string on this format:

    gcc (aaa) x.y.z yyyymmdd (bbb)
Recreate grid selection macros from DUNE

This duplicates functionality from the old autotools implementation
in case any user code needs it. It is not necessary to build the
OPM modules themselves.
Check for constexpr attribute
Check for tuple support
Simplify setting of flag that indicates shared object

Instead of having the name of the module set for each flag, use the
available standard option. Mixing shared objects and static libraries
in the same build is not a very realistic scenario anyway.

This enables us to call configure without actually having a particular
module; the script may then be used on a group level.
Merge pull request #12 from rolk/012_cmakeupd

Update CMake scripts to commit f6d44238 from opm-core