Removing this was a little premature as it turns out SourceMod uses it
across module boundaries. We cannot use STL across module boundaries.
Instead, simplify this quite a bit. Remove FuncPtr (which was unused),
and rename Lambda to Function, removing the old Function implementation.
This makes it basically identical to std::function including the caveat
that captures must be copy constructable.
Removing this was a little premature as it turns out SourceMod uses it across module boundaries. We cannot use STL across module boundaries.
Instead, simplify this quite a bit. Remove FuncPtr (which was unused), and rename Lambda to Function, removing the old Function implementation. This makes it basically identical to std::function including the caveat that captures must be copy constructable.