Better error messages in function calls.

Fixes #93.
This is an evolution of #220.
Definitely