Minimum refinement function for cell vertices.

When prescribing a minimum refinement level function, one often wants to refine boundary layers. If the current refinement however is to coarse to resolve this depth (e.g. a cell size of 300 km at a boundary layer width of 100 km) then even the midpoint of the cell at which the minimum refinement function is evaluated is not resolving this boundary layer. Therefore, I would argue to change the logic to evaluate the function at every cell vertex and as soon as one vertex requires action (stop coarsening or set refine flag) do this. It is still possible to define function that are not resolved at all, but at least every function of the kind: if depth < x is caught, because the outermost vertices have a depth of 0. I will add a line to changes.h in the next pull request, since I do not want to create conflicts.
Timo commented on this. I typically assume that cell->vertex() returns an rvalue (even though it really does return an lvalue, to everyone's surprise) and then you wouldn't use a reference but just a value. But, more importantly, storing a reference means that the compiler can't scalarize the variable because if you use it anywhere other than the very next statement, it would have to convince itself that the value behind the reference isn't modified anywhere. For objects as small as Point<dim>, I therefore typically assume that the compiler is better off treating them as scalar, rather than as large structures, and so just copy them.

Not important, just a general point.