Made list building efficient.

It's pesky to have to make Cons.tail mutable, but I tried to do a better job of
hiding that implementation detail than Scala did.

If Scala supported fucking package-scoped classes, then I could at least make
Cons package scope, because no one needs to see it (or its unsafeSetTail
method), but Scala decided package scope was too complicated or something, so
instead even though I declare the class to be private, it's actually public.
Yay!