WIP: Improvements to the statetrace

- Keep a stack implemented as a singly-linked list of eval_state
  structs. Push on function calls and error sites and pop on function
  returns.
- Still some issues to work out. When a script is executed with `load`,
  line numbering is not reset and the script name is not updated, so
  the statetrace information becomes fairly useless.
More work on call stack and trace

- Makes sure that all usages of `fh_call` are properly set up and push a
  new state onto the call stack. This needs some cleaning up yet.
  `fh_call` should manage the stack push and pop internally, taking
  whatever call metadata it needs as argument.
- Errors that occur in the execution of included files now properly
  display the script name.
- TODO: Errors while executing externally defined functions (in main or
  other) do not yet display the correct script name.
- Fixes a memory issue with the Function#apply implementation when the
  length of the argument array is 0.