Added custom context variables to the ScriptNode.

This pull request implements some but not all of what we've been discussing on #407. I thought it'd be good to get something in your hands and to see if David can use the custom variables somehow to give you what you need in the context of Grapher. I don't necessarily expect you to merge it as-is, but hopefully it might be useful to try out at least.

Users can define any variables they want for the global context using the "variables" plug which is visible in the File->Settings... menu. The filename is also mapped to the script:name variable.