[CMake] Guess build directory of dune-common

Previously we relied on CMake's export(PACKAGE ...) function when
finding dune packages without dune-control. This is error prone
when using several instances of a dune-module (either with differing
versions or built using different options). In this case there is no
control which of the instances is used.

Now we try to guess the correct build directory, if it was not
provided with ${module}_DIR, ${module}_Root or in the
CMAKE_PREFIX_PATH. Note that when using dunecontrol ${module}_DIR will
always be set. We take the path of the current toplevel build
directory and simply substitute any occurence of the name of current
module with name of the module that we try to find. This works for
both  building in a subdirectory of the source tree
(e.g. ${module-source}/build-cmake) or in a sibling directory
[InterleavedOrdering] Fix compilation error when accessing child index in map_lfs_indices()

The in iterator does of course yield a DOFIndex, and to get at the TreeIndex, we have
to explicitly request it.

Thanks to Jurgis for reporting the problem!
[Ordering] Add new PermutationOrdering

The permutation ordering is derived from the lexicographic ordering, it enables the custom permutation of DOF indices in an arbitrary way. To this end, the user hast to hand over a std::vector<size_t> perm to the PermutationOrderingTag which contains at position i the new index perm[i] of the old index i (old index given in terms of lexicographic ordering). After setting up the standard lexicographic ordering, the permutation is applied to yield a reordered DOF vector.

Obviously, perm should have the same size as the GFS it is belonging to. Additionally, perm should be a permutation, so it should contain all values from 0 to gfs.size()-1, if in an arbitrary order.
[Ordering] Revert a local change that got accidentally added to the last commit
[PermutationOrdering] Set delegate pointer, add copy and move constructors for correct behavior

PermutationOrdering derives from VirtualOrderingBase such that the virtual method 'map_index_dynamic' can be overwritten. But in order for this to actually be called, OrderingBase's _delegate pointer has to be provided. This was not the case until now, as we derived from LexicographicOrdering, which simply sets _delegate to null. Now all contructors contain an additional call OrderingBase::setDelegate(this) to make sure _delegate is always valid (even when the object is being copied or moved!)

Credits go to Steffen, thanks for the hints!
Include numeric for std::partial_sum for gcc-4.4
Adds missing template keyword in ConstraintsContainer
Removes bogus typename keyword used in non-template scope
Merge branch 'master' into p/gruenich/fixes
Adapt benchmark problems to follow new location of constraints.
Removed unused variables, typedefs and an included  header.