vm: o_get_global: Use object assign if the left is an object. Oops.
All functions now take 'self' as their second argument.

This makes it where a function has itself and can, in the future, add it to
an entry in the stack. So this was done to help with adding list::apply
finally get put in.

Nothing actually uses the self just yet, but it will.
list::apply, finally. Foreign calls now possible! Fixes #31.

This adds a few functions that allow functions to call back into the vm. At
this point, the only function that calls the vm looks like this:

list::apply(list[T], method(T):T):nil

where T is the type of the list. This calls the given method on each element
of the list. The return value of the method is assigned to the result pumped
out by the callee method.

Additionally, functions can now be added to the method stack so that a
function that fails shows up properly in the error stack. All the runners have
been updated to show stack trace properly.