[bugfix,documentation] spelling
[Buildsystem] Provide macros for explicitly marking symbols as exported or private

This patch adds a new header visibility.hh with macros DUNE_EXPORT and DUNE_PRIVATE
to mark symbols as exported or private at the ABI level.

While we do not explicitly mark any symbols as hidden, there are certain situations
in which the compiler creates symbols with incorrect linkage, especially for singleton
accessor methods for templated types and their embedded static variables, which involve
the creation of weak symbols.

The linker is then unable to merge those weak definitions, causing either a link-time
failure (when building static libraries) or undefined runtime behaviour (dynamic libraries).

This problem can be avoided by explicitly marking the singleton accessor methods as
DUNE_EXPORT. For symmetry, there is also a DUNE_PRIVATE macro, but while it works, I don't
see it used very much in the short term.
[cmake][bugfix] Exclude hidden headers from header checks.

Previously hidden unix files were included in the headercheck.
Unfortunately  emacs(server) tends to produces files such as
.#<headername>. This broke the constructed Makefiles. This patch
excludes such files from the list and fixes the issue.
[Bugfix] Add new header visiblity.hh to HEADERS/ installed files.

Thanks to Tobias Malkmus for the heads-up.
[MPIHelper] Add DUNE_EXPORT hints to singleton accessors of MPIHelper
Add missing braces in make_array() in array.hh.
[bugfix]  pass empty PARMETIS variables to the Makefile in case ParMetis was not found.
[bugfix] Improve duneproject.

Fix generated config.cmake.in which contained a surplus endif.
List CMakeLists.txt and other files to be included in tarballs.
Move generated files around to sort them by directory.
[umfpack] Added buildsystem tests for UMFPack.

This patch adds test for both CMake and autotools as the
build system.
UMFPack is used by several dune modules (e.g. fem and istl)
the only common required module by both is common. Therefore
we add the test here to make it usable for all modules.

BTW: These tests are taken from Dominics branch of dune-istl.
     Therefore he deserves the credit for them.
[autotools] Use correct m4 file name (umfpack.m4)

Previously a non existent file name (umfpack) was used in
Makefile.am. This broke the build with the message:

make[2]: *** Keine Regel vorhanden, um das Target »umfpack«,
  benötigt von »all-am«, zu erstellen.  Schluss.
make[2]: Leaving directory `/home/mblatt/src/dune/current/dune-common/build-auto/m4'

This patch fixes this by using the correct name.
[Hash][Bugfix] Add a working hash combining algorithm for 32-bit platforms

As Carsten pointed out, the hash combining algorithms doesn't work
correctly for 32-bit platforms because it uses a multiplication with
a 64-bit constant.

This patch adds a switch for picking different algorithms based on the
size of std::size_t using a new struct hash_combiner that is templated
on the size of std::size_t.

Right now, there are implementations for 64-bit and 32-bit platforms,
both based on CityHash.
[documentation,bugfix] spelling
Merge branch 'master' of https://git.dune-project.org/repositories/dune-common
[cleanup] remove trailing whitespace
[bugfix] language
[cmake] Fixes headercheck for modules in a directory path with special characters.

Using variables as part of regex does not work with special characters.
Therefore previously the headercheck failed during configure if e.g.
the modules were located in $HOME/C++/. This patch fixes this by not
using regex to strip the location of the modules from the path any more.

This log message was amended by the pusher.
[CMake][doc] Improve documentation of FindUMFPack.cmake.
[CMake][bugfix] Remove CMAKE_REQUIRED* from FindUMFPack.cmake.

The removed lines would be necessary if the included headers
or libraries would be tested. As this is not the case, they can
be safely removed.
The way they were used, every test tried to link to the libraries
amd and umfpack causing every test to fail if the libraries are
not present. The changed declaration of CMAKE_REQUIRED_* should
be encapsulated together with the test inside
  include(CMakePushCheckState)
  cmake_push_check_state()
and
  cmake_pop_check_state()
to ensure that the definitions do not leak the test.
[Cmake] Prevent Headercheck from polluting the Cache

Cmake by default added a dependeny variable for each headercheck
target. Given the amount of such targets and the fact, that these
dependencies should not be changed by the user, this is unwanted
behaviour. The patch fixes this by removing the variable from the
cache.
[bugfix] Prohibit copy constructor of DenseVector

DenseVector is the base class of a CRTP. This is kind of an abstract
class that works only if it can be casted into a derived type. Copying
the base class is pointless.

This patch marks the copy constructor of DenseVector private (not even
implementing it), so that it cannot be called anymore. Once we have a
DUNE_DELETE macro, we should use it, here.

At the same time, the default constructor is marked protected, so that only
derived classes can instantiate a DenseVector. Notice that this does not
prevent the user from building a derivced class which does not pass
itself as implementation to DenseVector. It is (to my knowledge) not possible
to make CRTPs completely fail-safe.