Refactoring/simplify FnCallResult

Note that not all functions in evalfunction.c has been converted, as some of them
are pending pull request with unrelated changes.

There are also opportunities for further simplification, this pull request only scratches
the surface.