Emitter: eval_call should not check for ast->result == NULL.

A long time ago, the parser used to handle calls of something that was known
to be a function by making tree_call and setting the tree's result to that
particular function's var.

This was changed when the parser's expression handling was written, so that
calling known function calls would no longer be a special case.

In short, it was ALWAYS triggered and therefore useless.
Emitter: Better error message for wrong number of args/wrong type.

The previous handling for wrong number of args/wrong type did not account for
variants (crashing on them), and went completely bonkers if it was a class
method that failed to be used properly.

Some not-so-great things had to be done to checking call arguments and how
eval_call handles arguments at the start of things. However, now class methods
the things that used to crash now don't anymore, so that's nice.

Tests added to check the new type error stuff. Also, fixed up a single test
now that the message is a little prettier.