Throw exception if we try to evaluate an unknown function
Disambiguate node tests from function names

This forced me to finally throw exceptions for bogus function names,
in order to preserve existing functionality.
Add test for parsing top-level function calls