Simplify call stack management with fh_call

- State init, push and pop now all happen within fh_call.
- Call expressions push an additional state on to the stack (from the
  call site) that sits above this.
Fix line number reset (starts at 1 not 0)
Adds additional call info to stacktrace.

- For function calls, display the name from the function declaration
  when applicable, (built-in function) or (anonymous function).
- Function expressions assigned to a variable are currently 'anonymous',
  though we may be able to display the string used to look it up.
Handle Date special case in [[DefaultValue]]

- Make sure Date objects are printed correctly (result of toString).
- Implements the `print` method on the global object (before it was just
  an alias to console.log). `print` passes the result of the call to
  ToPrimitive, using String as hint, to fh_debug.