Add extra sanity
Now we make an attempt to properly parse the arguments before evaluating them. Only a few more PRs till I reinvent LISP.
Also adds '-o' and '-d' flags, and slightly changes the behaviour with multiple lists having the same key (now last one wins, rather than all appending).