Returns true if and only if x is a proper list -- a sequence of zero or more cdr-linked pairs terminated with the empty list.
In particular, list? does finish and returns #f on cyclic lists. As a result, this function is fairly expensive (quadratic on long lists, although optimized for short ones).