Working on FETools::extrapolate in parallel

The FETools::extrapolate function does not work in parallel, because there can be patches with childs of childs ... which are artificial, but interpolation on a patch needs dof values of this cell. The idea is, to store the dof values needed to a list, send the data around to all processes and do the interpolation patch-wise.
All functionality is implemented in a struct CellDataHelpers, so the code is a bit more readable, hopefully, but this is work in progress, maybe some parts, for example sending data around, can be done more efficient and more elegant. If someone has an idea, great!!
This linear search through a vector is inefficient. A better approach would be to use a std::set and insert without searching as std::set makes sure each element is in there only once and can use a binary search to find out whether the element is in there already.

(Unrelated: you don't need the semicolon after the `}` -- it's unnecessary and some compilers will warn about it.)