Userdata functions: free functions and functors

Both free functions and lambdas are now bindable to userdata.
To also allow for member functions outside of the target userdata type, you must std::bind or lambda-ify the variable, and call it yourself (why would you bind member functions of a different type anyway?).

For non-`T` member functions, the first argument must be of type `T`.