generate paths inside write_output, not the render functions
lexington.py: slugify nodes without a name attribute
render: remove depth argument
parse_opml: factor out parse_opml
build_path: only include / if parent path exists

Otherwise, a typed summit would get placed at '/foobar.html' as the
directory to the left of the slash wouldn't exist.