Use source files of markdown pages as primary representation

Also rework DocumentsIndex to store paths to generated files and make File class aware of documents that can be used as a source for generating other documents.
Add url property to File class (for previews)
Set mime type to HTML for markdown pages
Use `text` extension in default configuration