new GridTools::flatten_triangulation

New GridTools::flatten_triangulation. Gives the ability to copy a flattened version of a Triangulation, with possibly different spacedims.
This section of the code would be easier to read if you did
```
  if (dim==2)
    ...
  else if (dim==3)
    ...
```
or using a `switch(dim)` statement. I had to look up where the variable `f` was defined and whether it remained live across the two if blocks.