Merge branch 'develop' into builtins
Refactor argument binding in calls

The refactored argument binding is easier on the calling site and does
the heavy lifting in a more uniform manner inside the `environment`
constructor. This is necessary to be able to define variadic lambdas at
runtime (`list` …). As a nice side effect, the definition of `lambda`
becomes cleaner, too.
Add basic Lisp library file and loading mechanism

Add a library file which loaded when instantiating a new environment. As
a proof of concept, the file contains the definition of the `list`
function – in Lisp.
Merge branch 'refactor-args' into develop