Add a cons object and related mechanisms

Which should do the right thing.

The only thing I'm not quite sure of, is the behavior of `cons?` on not-cons-but-iterable things.

Feel free to suggest potential tests I would have missed, too.

Closes: #183.