Fix show_list

Dear Jan,

I found that show_list puts the separators wrongly for non-empty even-length lists. I fixed the code in this pull request. What do you think?

In the second commit, I moved the implicit space after the separator to the separator string itself, and fixed up its uses; show_list should still behave exactly the same way after that commit but it's a bit more uniform.

By the way, we're using your code for an introductory module here at our university. It's pretty useful, thanks!

Cheers,
Bram Geron
PhD student at U of Birmingham