API, added support for return values for RNA_function_call_direct and completed the code. Didn't test it though. Returns works exact the same way as other parameters for format strings except you put a R in front of it. For instance for a function that accepts two vectors and returns a vector you use a format like "f[4]f[4]Rf[4]". I'm thinking about allowing arbitrary white space in the format string (or use comas as separators) to make it more readable. The return format *must* always come last and of course the corresponding argument you pass to the function has to be a pointer so that it can be filled with the return value.