Add builtins: environment manipulation
We're going to need a few functions to access and manipulate environments (namespaces).
- create a new namespace (this can be written in Vlinder itself, once we have a function to create a dictionary)
- get a namespace (from a list, or elsewhere, e.g. the global namespace, the calling namespace, etc)
- set a namespace (to a list)
- inspect a namespace (e.g. get all of its names, its parent (if any), ...)
Once we have these, we can simulate dynamic scoping, among other things.