Add support for accepting function pointers

The interpreter can now accept function pointers in addition
to std::function objects...