initial conversion to handles
checkpoint for attempt to use handles to ensure local variables in
eval() are not freed prematurely. Abandoning due to technical
difficulties related to stack backtraces not being preserved
properly.
NB: important bugfixes to memory.c and node.c
convert locals struct pointers to handles to ensure that data doesn't go missing while eval() is running.
remove unneeded code, minor formatting changes