[GridFunctionSubSpace] Fix generation of DOFIndices in LocalFunctionSpace of GridFunctionSubSpace

Until now, the implementation deferred the fixup of the DOFIndices required for
a subspace to the SubOrdering. Unfortunately, this strategy causes the return
values of LocalFunctionSpace::dofIndex() to be wrong.

This patch fixes the issue by explicitly specializing the LocalFunctionSpace
interface class for subspaces and injecting an additional intermediate base
class to do the DOFIndex fixup.

I initially tried to handle the problem by extending the transformation rules
for the GFS -> LFS transformation, but that doesn't work in this case because
the new LocalFunctionSpace nodes need to operate on the actual GridFunctionSubSpace
and fail if they get passed the proxied, underlying space.
[test]
test dofIndex of SubSpace
[ordering]
update documentation ... TypeTree is not a part of PDELab anymore
Merge branch 'feature/fix-dofindex-in-subspace'

* feature/fix-dofindex-in-subspace:
  [GridFunctionSubSpace] Fix generation of DOFIndices in LocalFunctionSpace of GridFunctionSubSpace
[LocalFunctionSpace] Export subspace depth for LFSIndexCache

Due to the recent changes to the way subspaces work, the LFSIndexCache
needs to know how the length of the path from the subspace to the root
of the underlying tree because it needs to remove that portion of the
treeindex before invoking the orderings for the subtree (those expect
to get a shorter DOFIndex than what we have right now, as we have cut
off the upper part of the tree in the subspace).

This patch adds a new method subSpaceLength(), which returns 0 for
regular LocalFunctionSpaces and a positive value for the root
LocalFunctionSpace of the LocalFunctionSpace tree generated from a
GridFunctionSubSpace.
[LFSIndexCache] Use subspace depth information from LFS to fix subspace
index mapping

This patch uses the information exported from LocalFunctionSpace through
subSpaceLength() to set up the DOFIndexViewIterators for the functor
map_dof_indices_to_container_indices with the correct initial tail length
to work correctly for LocalFunctionSpaces of GridFunctionSubSpaces.
[SubOrdering] Remove unused member variables

The member variables of SubOrdering that were required for extending
the DOFIndices to the root of the GFS tree are not needed anymore, so
get rid of them.

We also don't need the LFS TreePath as a constructor argument anymore,
so let's get rid of it as well.
Merge branch 'p/gruenich/fixes'

Some fixex from Christoph. Thank you!

* p/gruenich/fixes:
  Remove unused typedefs.
  Add space between >> from templates because older compilers dislike that.
  Replace deprecated GenericReference* by Reference*.
  Add forgotten transition header for interiornodeconstraints.hh.
[ordering]
factor out that part of LeafGridView ordering which is independent from a gridview,
this is the first step for other functionspaces in the future, e.g. tracespaces
[test]
testnonoverlapping requires UG, so make sure we have UG available
[gridexamples]
fix out-of-source build

pass GRIDSDIR in the CXXFLAGS from the Makefile
[ordering]
improve documentation
[assembler]
directly derive GlobalDOFIndex type, don't rely on the Ordering, which should never know about a GlobalDOFIndex

The Ordering is supposed to change the natural ordering of the local DOFs,
thus it has nothing to do with the GlobalDOFIndex, which is actually a GlobalDOFId.
This patch is the first step to get rid of the GlobalDOFIndex typedefs and template
parameters in the ordering interface.
[ordering]
remove GlobalDOFIndex from the Ordering interface
[backend/istl]
adapt to the changes in the ordering interface

remove the, now, obsolete GDI template paramter
[localassembler/patternengine]
move the definition of GlobalDOFIndex and BorderPattern to the BorderDOFExchanger class

We want to get rid of any GridView requirements in the interface. If we operate on different
grids the assembler doesn't have a unique BorderDOFExchanger, no unique GlobalDOFIndex
and no unique BorderPattern. Thus we delay the dfinition as far as possible. Only the
pattern_engine knows about the BorderDOFExchanger (and actually even this class shouldn't
know about it!).
fixup borderdofexchanger
[SubOrdering] Fix mapping of single DOFIndices to ContainerIndices

The previous patch only got the batch mapping right, I overlooked
the simple one-at-a-time interface.
[borderdofexchanger]
fix access right to typedefs in the non-overlapping case
Fix headercheck by adding missing include.