improve lecture summary rendering
This change uses markdown2 to actually parse the markdown files in order to correctly identify headers (and e.g. not accidentally read code comments as headers). It also formats the generated summary a little different (subheadings end up as list-items, not as another heading level). This way, the generated summary page is a little less noisy.