Implemented nary functions

Fixes #22

Let me know if this is confusing - it's kinda hacked together.

The key thing to note is that we are essentially evaluating `(list
args)`, which is independent of an environment, so we make a cell which
is a list of all the values and has tags of the union of the arguments'
tags.