Add a simplified List, the ubiquitous functional data structure.

The definition here is identical in spirit to (though simpler than) the
List data type defined in Scala's standard library. This code listing
introduces a lot of new syntax and concepts that we'll talk through
in detail.