Call EdgeFunc for each boundary edge of each of the given Groups (no order defined). Templated so that it can be used with either sets (such as selections) or lists, and works with both lambdas or TFunctions. Defined here to avoid dll explicit instantiation woes.