support for marshaling a lua closure back to c++ as an std::function to be called by c++ code