[Ordering] Switch Ordering lookup to a polymorphic meta function

Up until now, there was only a single  transformation descriptors which
used specialization for the lookup.

In preparation for adding support for decorated OrderingTags, this patch
changes that lookup to happen through a polymorphic meta function like
the general transformation descriptor lookup in TypeTree.
Add forgotten transition header for interiornodeconstraints.hh.
added parameter that allows to switch off insertion of
boundary segments. Default version behaves as before.
[OVLP solvers] Add some more ready-to-use overlapping solver backends

Note: The RestartedGMRes solver only works for me when applying the patch from FS#1202.
Merge branch 'master' of http://git.dune-project.org/repositories/dune-pdelab
[GridFunctionSpace] Clean up compile errors that creeped in with the last merge
[Ordering] Add new decorator mechanism to inject nodes with additional functionality into the Ordering tree

The decorator mechanism makes it possible to wrap ordering tags in decorator
tags that will cause additional Ordering nodes to be inserted into the Ordering
tree directly above the decorated node.

The mechanism automatically takes care of making the new Ordering and tag compatible
 with all existing kinds of Orderings and allows for the stacking of multiple decorator
nodes on a single GridFunctionSpace OrderingTag.
[Ordering] Add new DOF-permuting decorator Ordering

The Ordering can simply be added by wrapping the original OrderingTag in the
Dune::PDELab::ordering::Permuted<> template. The permutation is availabe by
calling permutation() on the tag. As the new tag inherits from the original
tag, its interface also stays accessible through the new tag.
[PermutedOrdering] Add exception for inconsistent sizes of GFS and permutation vector
[Tests] Add test for PermutedOrdering
Merge branch 'feature/dof-improvements'

Add infrastructure for injecting additional nodes into the ordering tree
as well as a first implementation that can be used to permute the order
of DOFs of any global Ordering (it doesn't work for cell-local Orderings).

* feature/dof-improvements:
  [Tests] Add test for PermutedOrdering
  [PermutedOrdering] Add exception for inconsistent sizes of GFS and permutation vector
  [Ordering] Add new DOF-permuting decorator Ordering
  [Ordering] Add new decorator mechanism to inject nodes with additional functionality into the Ordering tree
  [Ordering] Switch Ordering lookup to a polymorphic meta function
Merge branch 'work'

Integrate a number of changes that have been cooking locally for a while

- Substantial overhaul and cleanup of transformation registry in TypeTree
- Cleanup and bug fixes in Orderings
- New PermutedOrdering
- Major cleanup in GridFunctionSpace that finally resolves the problem of calling size() et al
  in GridFunctionSpace in a hierarchy. This breaks backward compatibility if you directly call
  size() on a freshly created GFS, see the relevant commit messages
- Some smaller fixes

* work: (27 commits)
  [Tests] Add test for PermutedOrdering
  [PermutedOrdering] Add exception for inconsistent sizes of GFS and permutation vector
  [Ordering] Add new DOF-permuting decorator Ordering
  [Ordering] Add new decorator mechanism to inject nodes with additional functionality into the Ordering tree
  [GridFunctionSpace] Clean up compile errors that creeped in with the last merge
  [PowerNode] Make sure the variadic constructor doesn't shadow other one-argument constructors
  [ISTLVectorBackend] Fix compilation error
  [TypeTraits] Add missing forward declarations of GridFunction tags
  [FiniteElementMap] Fix FEM-related exceptions to derive from PDELab-specific base class
  [Buildsystem] Fix uniform initialization syntax in initializer list tests
  [Ordering] Switch Ordering lookup to a polymorphic meta function
  [GridFunctionSpace] Prevent users from accidentally calling ordering() on child spaces
  [GridFunctionSpace/Ordering] Feed size information from Orderings to GridFunctionSpaces and introduce GFS base class
  [PartitionInfoProvider] Move PartitionInfoProvider to separate header in common/
  [TypeTree] Add support for transformation descriptors that require lazy evaluation
  [TypeTree] Switch transformation descriptor lookup to DUNE_DECLTYPE macro
  [Typetraits] Support for conditional evalution of meta functions
  [TypeTree] Clean up transformation descriptor registration
  [Typetraits] Provide is_base_of and conditional in Dune namespace
  [TypeTree] Generate pointers in decltype lookup expression with declptr
  ...
[CMake] Make sure to actually call the new decltype and __typeof__ tests for cmake

Thanks to Andreas Buhr for reporting the problem.
[Typetraits] Dune::conditional has moved to dune-common

Looks like Oliver had the same idea I had at the same time and
implemented conditional in common, so we can get rid of it here.
[GridFunctionSpace] Avoid unnecessary shared_ptr attachment and detachment in GFS::ordering()

Attaching / detaching a shared_ptr is an expensive operation, so only do it if it's
really necessary.
[Typetraits] Follow dune-common transition from SelectType to C++11-like conditional
[Headercheck] Don't include function.hh from typetraits.hh to avoid an invalid circular inclusion

function.hh includes TypeTree headers which in turn require typetraits.hh for
decltpr<>(), so let's not do that. Apart from that, having typetraits.hh depend
on the much higher-level function.hh smells like bad layering...
[localfunctionspace]
split bind from LocalFunctionSpaceBaseNode

- we want one base class with all the storage, but for other functionspaces, we might not be able to use the generic bind
- all classes now derive from GridViewLocalFunctionSpaceBaseNode
Merge branch 'master' of http://git.dune-project.org/repositories/dune-pdelab
Merge branch 'work'

Just some small fixes

* work:
  [Headercheck] Don't include function.hh from typetraits.hh to avoid an invalid circular inclusion
  [Typetraits] Follow dune-common transition from SelectType to C++11-like conditional