detail: add `funcion_view` non-owning wrapper for passing functions to functions
detail: add `funcion_view` non-owning wrapper for passing functions to functions

Intended to be used as non-templated function argument type that is
supposed to accept any callable object (function pointer, lambda,
std::function, etc).

Wrapper DO NOT extend callable object lifetime (holds a pointer to it),
is very lightweight and speed is the same as using pure function
pointer.

uentity/blue-sky-re,uentity/blue-sky-re,uentity/blue-sky-re