Syntax for list literals

Replace instances of 'new List' with '[]', since the two are semantically
identical and using an empty list literal here is more idiomatic.
Some tweaks to function declaration syntax

Since I want patterns to be first-class as much as possible,
and because ambiguity arises when the old syntax is used with a
'this'-equivalent argument on the left, I'm introducing a new
pattern-specific syntax. Pattern literals will be surrounded by
vertical bars to set them apart from the rest of the code.
Define an 'unless' statement

As 'until' is to 'while', 'unless' is to 'if'.
Playing around with left-hand function arguments

Define a handful of new functions on lists that basically desugar
to existing functions, all of whose arguments are on the right.