Remove weakref

* It didnt actually work with functions with
  multiple arguments
* Log function proxy creation
fix run_func to add the path
run_code in the base workspace so we can get to the variables
Pass and return args as dictionaries

Due to the inherent ambiguity in matlab's JSON
decoding ability this is the only way to make
passing >1 same-sized array arguments work. Otherwise
the matlab json library coerces them to a matrix
Add run_script

Runs a m script file and stores any variables
in the base workspace
Rework run_code

Write a temporary m file and execute it via run_script to
allows variables to persist in the base workspace.