Some refactorings

Please, review #35 first as this branch builds on the other.

This PR consists of only loosely related commits, most of them only propositions. We should cherry-pick, what we agree on.
I was thinking of removing `printMarkdown` altogether. It's easy to just write `putStrLn . markdown` yourself.

(Well, I'm one to talk given that I messed that up. :))

What do you think?