No user visible changes expected. Rather than relying on a C-style function pointer with void pointer arguments, allow storing a `std::function` object, which can hold arbitrary data in a type safe way. This can be conveniently used with lambdas for example. This is not used yet, but will be with #104831 merged. Replacing the existing C-style callback uses with this can be done separately. Pull Request: https://projects.blender.org/blender/blender/pulls/109016