init_func_seed: Fix an oops with where the ret->parent set happened.

This was uncovered by running blastmaster.py. Thanks, aft.
Functions now take varargs in a list. No external changes.

This is part of what's needed to make methods and functions the same thing.
Additionally, vm functions no longer need a num_args param, since that was
just so that printfmt could get its varargs. So that was removed from all vm
functions.
Terminate methods with extreme prejudice. Fixes #44.

Functions and methods have been merged. There are now zero references to
methods anywhere (except in apache's httpmethod binding). Here's the
breakdown:

* The interpreter now thinks of functions as having two flavors: Native and
  foreign. Native means defined in Lily code, foreign means it's probably
  defined in C. The interpreter does not actually distinguish between them
  though.
* Fixed a small bug in creating the stack entry for list::apply: It was
  malloc-ing a block instead of using vm's foreign code block. So...a blatant
  leak that never got checked. Yay.
* Shuffled a few tests around name-wise because methods are dead.
* Updated all tests for the name change.
* A bug was fixed in hash comparisons for keywords, but was never uncovered
  because there were no keywords with a length of 8 where a longer name also
  matched up (function is 8 letters, so function_list triggered this). I have
  a better fix for a commit soon-to-come.
* Got rid of vm's err_function and in_function. Foreign functions now add a
  stack entry properly so it feels less hacky.
* Fixed an oops in seeding the global functions: They got an empty class name
  instead of a NULL one, so a raise from printfmt was showing as "::printfmt".
* I remembered to update the documentation this time. Yay!
* Updated how all runners dump stack, because methods are gone.
Update documentation for str->string. Whoops.

I forgot to do this a few commits back. :(